我对创建 java应用程序的 .bat文件的过程感到有些困惑。我已经使用IDE在C:目录中输出 Application.jar导出了可执行jar。然后我在.txt文件中写了两行,如下所述,并将其作为.bat文件保存在我的application.jar所在的同一目录中。但是双击.bat文件,应用程序没有被执行。
.BAT文件代码
javac Application.java
java -cp . Application
注意:我还在环境变量中设置了JRE和JDK路径,直到“我的电脑”属性中的bin路径。但它没有用。有人可以建议我如何解决这个问题,因为我想在.bat文件上通过doubleclickng执行我的代码。如果有人可以为我提供完成此操作所需的每一步,那将是很好的,因为我之前从未这样做过。
谢谢,
答案 0 :(得分:3)
批处理文件中的第一行是尝试编译程序! 第二行是尝试运行Application.class文件。
如果您生成了可执行jar文件,您想要的是:
java -jar Application.jar
但你根本不需要批处理文件。如果您双击jar文件并运行程序,则可以创建一个快捷方式。
答案 1 :(得分:2)
你的.bat很好。双击时,它可能正在执行,然后关闭。这是因为您的程序可能没有任何UI,并且它不等待任何输入。要验证这一点,请执行命令提示符,然后通过该文件执行bat文件。
在其他情况下,我假设您有一个名为Application的java类,您需要通过批处理文件运行它。在这种情况下,如果类有一个main方法,那么你只需要一行.bat文件
java -cp <the path to class file> Application
因此,您可能正在使用javac来利用类路径作为当前目录。所以当你说
时javac Application.java
java -cp . Application
它将类编译为当前文件夹并将其设置为类路径,然后执行。只要Application.java没有任何第三方依赖项,这绝对是文件。但在这种情况下,您不需要将-cp设置为。 (除非另有说明,否则当前目录将自动作为类路径)。所以下面也可以正常工作。
javac Application.java
java Application
我支持Jurgen的回复。如果您有一个可执行jar文件和路径中的jre,那么双击它将运行该应用程序。 jar中的META-INF文件夹将有一个MANIFEST.MF文件,该文件使用名为Main-Class:
的属性来指定主执行类。并且在双击时该类被执行。但是,只有拥有UI才有用。否则它也没有效果。
在所有这些上下文中,您提到的Application.jar是无关紧要的。如果这是你需要运行的第三方jar,你应该包含in -cp参数。