我有一个作业,必须在闪存驱动器中提交我的代码。
我在Eclipse中进行了所有编码,并获得了所有输出。我尝试通过命令行运行它,并且可以工作。我将所有Java文件和类文件复制到了闪存驱动器,并通过命令行再次尝试了它在笔记本电脑中的工作方式。但是当我进行潜水并将其放入台式计算机并通过命令行运行时,它无法识别软件包中的类。
我在这个软件包下有一个软件包a1.cis568,我有几个类。主类是A1
,其他类在同一程序包中是Circle
,Point
,PlaneCircle
,EHashtable
,CHashtable
。
我必须在命令行上使用以下行来通过闪存驱动器编译和运行我的程序,(这样做时不必更改任何类路径)
E:>
E:>javac -d . A1.java
E:>java a1.cis568.A1
当我寻找解决方案时,我发现我可以在闪存驱动器上安装JDK并运行代码。我尝试安装JDK,但无法解决问题。
最佳答案
您似乎在编译源代码时遇到了麻烦!
由于您导航到包层次结构到A1.java
所在的位置,然后尝试进行编译,因此编译器无法找到A1
所依赖且不在同一目录中的其他类。您必须告诉它在哪里可以找到它们,这是使用javac
的选项-sourcepath
完成的。
因此,可以从类A1.java
的相同位置使用类似以下的代码来编译代码:
E:> javac -d . A1.java -sourcepath ..\..\
在这里,
..\..\
用来告诉您可以在实际Directroy上方的两个目录中找到源(基于软件包树a1\cis568\
)。但是为了使事情变得容易,我建议您从源代码树的根目录进行编译。在这种情况下,
sourcepath
和classpath
是默认情况下的实际工作目录。因此,在命令提示符中导航到包/目录
a1
所在的位置,然后像这样编译:E:> javac -d . a1\cis568\A1.java
comipiler应该能够找到
A1
所依赖的所有类(假设它们都以正确的包存在于源代码根目录中)。与运行
E:> java a1.cis568.A1
关于java - 如何从命令行中从具有包类的闪存驱动器中运行Java程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19611058/