小编典典

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

java

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

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

我在这个程序包下有一个程序包a1.cis568,我有几个类。主类是A1和其它类是CirclePointPlaneCircleEHashtableCHashtable在同一封装中。

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

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

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


阅读 215

收藏
2020-11-30

共1个答案

小编典典

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

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

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

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

..\..\是用来告诉您可以在实际Directroy上方两个目录下找到源(基于您的package tree a1\cis568\)。

但是为了使事情变得容易,我建议您从源代码树的根目录进行编译。在这种情况下,sourcepathclasspath是默认情况下的实际工作目录。

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

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

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

与运行

E:> java a1.cis568.A1
2020-11-30