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