尝试将jar文件(从我的项目创建)执行到Windows shell(DOS提示符)时,我遇到以下问题。
我有一个名为 Main.jar 的文件。如果我解压缩此文件,它包含一个 mainPkg 文件夹(这是包含 Main 类的包的名称,该类本身包含 main()法)。
因此,在 mainPkg 文件夹中,有 Main.class 文件,其中包含 main()方法。
好的,从shell开始,我进入包含 Main.jar 的目录,然后执行:
C:\Projects\edi-sta\build\jar>java -jar mainPkg.Main.jar
Error: Unable to access jarfile mainPkg.Main.jar
但是你可以看到我获得无法访问jarfile mainPkg.Main.jar 。为什么?我错过了什么?如何解决此问题并执行 Main.jar 文件?
答案 0 :(得分:3)
在jar中执行包含main方法的类的语法是:
java -classpath <jarFile> <class>
在你的情况下:
java -classpath Main.jar mainPkg.Main
如果要使用java -jar
执行jar,则必须创建可执行jar文件。这可以通过不同的方式完成,具体取决于您使用的构建工具。
答案 1 :(得分:2)
基本上你有两种类型的JAR
java -jar
命令运行此命令,例如java -jar RunnableMain.jar
。
在这个中我们已经配置了具有main()的类,因此不需要在jar命令假设你的是一个普通的JAR,你可以像这样执行你感兴趣的课程
C:\Users\arkantos\work>java -classpath C:\Project\Main.jar mainPkg.Main
请注意,我已经提到了将JAR添加到类路径的绝对路径,因为我在不同的目录中,如果没有,你可以cd到包含你的Main.jar
和然后像这样调用你的Main类
C:\Project>java -classpath Main.jar mainPkg.Main
此处Main.jar
位于Project目录中,因此无需提供绝对路径