如何从命令行从包中包含类的闪存驱动器运行java程序?
我有一个任务,我必须在闪存驱动器中提交我的代码 我在eclipse中完成了所有的编码并获得了所有的输出。我试着通过命令行运行它,它运行正常。我将所有java文件和类文件复制到闪存驱动器,并通过命令行再次尝试,它在我的笔记本电脑中工作。但是,当我把它放在我的桌面计算机上并通过命令行运行时,它无法识别包中的类 我有一个包a1.cis568在这个包下我有几个类。主类为如何从命令行从包中包含类的闪存驱动器运行java程序?,java,Java,我有一个任务,我必须在闪存驱动器中提交我的代码 我在eclipse中完成了所有的编码并获得了所有的输出。我试着通过命令行运行它,它运行正常。我将所有java文件和类文件复制到闪存驱动器,并通过命令行再次尝试,它在我的笔记本电脑中工作。但是,当我把它放在我的桌面计算机上并通过命令行运行时,它无法识别包中的类 我有一个包a1.cis568在这个包下我有几个类。主类为A1,其他类为圆,点,平面圆,EHashtable,CHashtable,在同一包中 我必须使用命令行上的以下行通过闪存驱动器编译和运行
A1
,其他类为圆
,点
,平面圆
,EHashtable
,CHashtable
,在同一包中
我必须使用命令行上的以下行通过闪存驱动器编译和运行我的程序(这样做时不必更改任何类路径)
当我搜索解决方案时,我发现我可以在闪存驱动器上安装JDK并运行代码。我尝试安装JDK,但它并没有解决我的问题。如果您使用eclipse,您可以轻松地将项目导出为可运行的jar。将jar文件和源文件复制到闪存驱动器。通过以下命令行执行
java-jar[runnable jar filename]如果您使用的是eclipse,那么您可以轻松地将项目导出为可运行jar。将jar文件和源文件复制到闪存驱动器。通过以下命令行执行
java-jar[runnable jar filename]您似乎在编译源代码时遇到了问题 由于您将包层次结构导航到
A1.java
所在的位置,然后尝试编译,因此编译器无法找到A1
所依赖且不在同一目录中的其他类。您必须告诉它在哪里可以找到它们,这是使用javac
的选项-sourcepath
完成的
因此,从类的同一位置A1.java
可以使用以下内容编译代码:
E:> javac -d . A1.java -sourcepath ..\..\
E:> javac -d . a1\cis568\A1.java
此处。\..\
用于说明源代码可以在实际目录之上的两个目录中找到(基于您的包树a1\cis568\
)
但是为了让事情变得简单,我建议您从源代码树的根开始编译。在这种情况下,sourcepath
和classpath
是默认的实际工作目录
因此,在commad提示符中导航到包/目录a1
所在的位置,然后按如下方式编译:
E:> javac -d . A1.java -sourcepath ..\..\
E:> javac -d . a1\cis568\A1.java
comipiler应该能够找到A1
依赖的所有类(假设它们都存在于源代码根目录中的正确包中)
跑
E:> java a1.cis568.A1
您似乎在编译源代码时遇到了问题 由于您将包层次结构导航到
A1.java
所在的位置,然后尝试编译,因此编译器无法找到A1
所依赖且不在同一目录中的其他类。您必须告诉它在哪里可以找到它们,这是使用javac
的选项-sourcepath
完成的
因此,从类的同一位置A1.java
可以使用以下内容编译代码:
E:> javac -d . A1.java -sourcepath ..\..\
E:> javac -d . a1\cis568\A1.java
此处。\..\
用于说明源代码可以在实际目录之上的两个目录中找到(基于您的包树a1\cis568\
)
但是为了让事情变得简单,我建议您从源代码树的根开始编译。在这种情况下,sourcepath
和classpath
是默认的实际工作目录
因此,在commad提示符中导航到包/目录a1
所在的位置,然后按如下方式编译:
E:> javac -d . A1.java -sourcepath ..\..\
E:> javac -d . a1\cis568\A1.java
comipiler应该能够找到A1
依赖的所有类(假设它们都存在于源代码根目录中的正确包中)
跑
E:> java a1.cis568.A1
当您尝试运行它时,您会遇到什么错误?当我运行main类(A1.java)时,它不会识别我在A1.java中创建的其他类对象,它会显示“A1.java:120:error:not find symbol PlaneCircle pcr5=new PlaneCircl(po5,9999f)”,这与我在A1.java中使用的其他类的对象相同。在命令行中给我42个错误。当您尝试运行它时,您会遇到什么错误?当我运行main class(A1.java)时,它无法识别我在A1.java中创建的其他类对象,它会显示“A1.java:120:error:not find symbol PlaneCircle pcr5=new PlaneCircl(po5,9999f)”这与我在A1.java中使用的其他类的对象相同。在命令行中给了我42个错误。我实际上对这个问题失去了希望,但谢谢你的回答。我试过这个。但当我使用jar文件时,我必须使用A1.jar在命令行中执行。我的意见书没有使用它。它使用“javac-d.A1.java”。我很困惑,闪存驱动器是如何工作的。但是
A1.java
不应该存在于顶级目录中。它必须位于a1/cis568/a1.java
中。要么把A1类放在一个未修改的包中,要么使用javacA1/cis568/A1.java
我实际上对这个问题失去了希望,但感谢您的回答。我试过这个。但当我使用jar文件时,我必须使用A1.jar在命令行中执行。我的意见书没有使用它。它使用“javac-d.A1.java”。我很困惑,闪存驱动器是如何工作的。但是A1.java
不应该存在于顶级目录中。它必须位于a1/cis568/a1.java
中。要么将A1类放在未命名的包中,要么使用javacA1/cis568/A1.java