1

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

我在 Eclipse 中完成了所有编码并获得了所有输出。我尝试通过命令行运行它并且它有效。我将所有 java 文件和类文件复制到闪存驱动器并通过命令行再次尝试它在我的笔记本电脑上工作。但是当我把它放在我的台式电脑上并通过命令行运行时,它无法识别包中的类。

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

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

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

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

4

2 回答 2

1

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

java -jar [可运行的 jar 文件名]

于 2013-10-26T20:08:46.953 回答
0

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

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

A1.java因此,您可以从类的同一位置编译代码,如下所示:

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

这里..\..\用于告诉源可以在实际目录上方的两个目录中找到(基于您的包树a1\cis568\)。

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

因此,在 commad 提示符下导航到包/目录所在的位置a1,然后像这样编译:

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

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

运行

E:> java a1.cis568.A1
于 2013-10-29T08:35:20.060 回答