在命令提示符中运行jar文件

317

如何在命令提示符中运行jar文件?

4个回答

554

试试这个

java -jar <jar-file-name>.jar

19
只有当创建的 JAR 文件是可运行的 JAR 文件时,这将起作用。 - Chetan
很多时候,当你使用 '.jar' 文件时,可能会出现不正确的情况,这时你需要使用内部语句进行调用。谢谢 :) - user3402040
1
作为一个提示,如果你的应用程序使用了 web 框架,可能需要传递更多的参数,在 Dropwizard 中的例子中就是:java -jar myapp.jar server xxx.yml - Opentuned
使用这些命令,您可以使用后台进程运行jar文件。nohup java -jar /web/server.jar & - Buddhika Lakshan

261

如果您的清单文件中未定义入口点,则调用java -jar foo.jar将无法运行。

如果您没有清单文件或者要运行与清单文件中指定的主类不同的主类,请使用此命令:

java -cp foo.jar full.package.name.ClassName

参见有关如何创建具有入口点的清单的说明: https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html


2
如果您想运行与清单中指定的不同类主函数,则此方法同样适用。 - br3nt
6
对于开发人员而言,我认为这个回答比Bala R的更好,虽然最好将它们结合起来。 - Hack5
3
我认为这个答案应该被接受,而不是另一个答案。 - Indrajeet Gour
如果我没有主方法怎么办?我想使用一个带参数的静态方法。 - MoxGeek
@MoxGeek,你需要一个名为main的静态方法。我认为没有绕过这个的办法。你仍然可以编写自己的Main类,并从那里导入其他类。要传递给主方法的额外参数只需在full.package.name.ClassName之后输入即可。你还可以查看Java REPL,例如jshell,并导入所需内容,这种解决方案会感觉更像“脚本”风格。 - Lynch

37

java [任何其他JVM选项] -jar foo.jar

该命令运行一个名为"foo.jar"的Java程序,并将给定的JVM选项传递给它。

16
-D参数要放在-jar之前!谢谢,我需要这个提醒。 - Clarence Liu

26

您可以通过以下方式在命令行上运行JAR文件:

java -jar myJARFile.jar

6
在被接受的答案出现前2秒作出回答,干得好 :-) - Rich S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接