如何从命令行中的包中有类的闪存驱动器运行java程序?

时间:2013-10-26 19:41:24

标签: java

我有一项任务,我必须在闪存驱动器中提交我的代码。

我在eclipse中完成所有编码并获得所有输出。我尝试通过命令行运行它,它的工作原理。我将所有java文件和类文件复制到闪存驱动器,并通过命令行再次尝试它在我的笔记本电脑中工作。但是,当我进行潜水并将其放入台式计算机并通过命令行运行时,它无法识别包中的类。

我在这个包下面有一个包a1.cis568我有几个类。主要类是A1,其他类是同一个包中的CirclePointPlaneCircleEHashtableCHashtable

我必须在命令行上使用以下行来编译并通过闪存驱动器运行我的程序,(这样做时不必更改任何类路径)

E:>        
E:>javac -d . A1.java        
E:>java a1.cis568.A1

当我在寻找解决方案时,我发现我可以在闪存驱动器上安装JDK并运行代码。我尝试安装JDK,但它并没有解决我的问题。

2 个答案:

答案 0 :(得分:1)

如果您正在使用eclipse,您可以轻松地将项目导出为可运行的jar。将jar文件和源复制到闪存驱动器。通过以下

从命令行执行

java -jar [runnable jar filename]

答案 1 :(得分:0)

您似乎在编译源代码时遇到了麻烦!

由于您将包层次结构导航到A1.java所在的位置然后尝试编译,编译器无法找到A1所依赖的其他类以及哪些不在同一目录中。您必须告诉它在哪里找到它们,这是使用javac的选项-sourcepath完成的。

因此,从类A1.java的同一位置,您可以使用以下内容编译代码:

E:> javac -d . A1.java -sourcepath ..\..\

此处..\..\用于表示可以在实际directroy之上找到两个目录(基于您的包树a1\cis568\)。

但为了方便起见,我建议你从源代码树的根目录编译。在这种情况下,sourcepathclasspath是默认的实际工作目录。

然后在commad提示符下导航到package /目录a1所在的位置,然后按以下方式编译:

E:> javac -d . a1\cis568\A1.java

comipiler应该能够找到A1所依赖的所有类(假设它们都存在于源代码根目录中的正确包中)。

使用

运行
E:> java a1.cis568.A1