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

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

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

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

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

 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 ..\..\ 

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

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

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

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

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

运行

 E:> java a1.cis568.A1 

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

java -jar [runnable jar filename]