问题:我编写了一个 hello world java 程序,编译并创建了它的 jar 文件 - 完美,没有问题。
我现在将以下内容添加到源代码的顶部
package za.ac.uj.csc2a;
保存代码,将所有文件放在正确的目录中,每次我使用此批处理文件进行编译时
del *.class
del *.jar
del *.txt
echo compiling HelloWorld.java.....
javac HelloWorld.java
javap -c HelloWorld.class > ByteCode.txt
jar cfe HelloWorld.jar HelloWorld HelloWorld.class
java -jar za.ac.uj.csc2a.HelloWorld.jar
我明白了,
Error: Unable to acces jarfile za.ac.uj.csc2a.HelloWorld.jar
任何建议......
这是最终的可运行的bat文件
del *.class
del *.jar
del *.txt
RD /Q /S bin
echo compiling HelloWorld.java.....
MD bin
javac -d bin za/ac/uj/csc2a/HelloWorld.java
javap -c bin/za/ac/uj/csc2a/HelloWorld.class > ByteCode.txt
jar cfe HelloWorld.jar za.ac.uj.csc2a.HelloWorld -C bin .
java -jar HelloWorld.jar
pause
非常感谢
艾登
最佳答案
-jar
选项接受文件名,而不是类。
你应该这样做
java -jar HelloWorld.jar
但请记住,您需要在 list 文件中指定您希望使用 -jar
选项执行的主类。
list 文件应如下所示
Main-Class: za.ac.uj.csc2a.HelloWorld
并将其包含在 jar
命令中的 m
选项中。
此外,您似乎正在将 .class 文件添加到 jar 文件的根目录中。它应该位于 za.ac.uj.csc2a
目录
如果您不想使用 list 文件,您也可以像这样启动它(也许这就是您正在尝试的):
java -cp HelloWorld.jar za.ac.uj.csc2a.HelloWorld
关于java - 如果添加到包中则无法编译 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211641/