如何制作我的jar的可分发批处理文件

时间:2009-10-21 07:04:01

标签: java batch-file

您好我已经创建了一个java应用程序并创建了一个jar文件。然后我创建了一个批处理文件eg-> startup.bat此文件的内容为java -jar MyApp.jar

现在,如果我双击批处理文件,那么我的java应用程序可以工作,因为jar文件和批处理文件都属于同一目录。现在我将批处理文件复制到桌面并运行,然后我的应用程序没有运行。

此外,我希望我的批处理文件自动设置类路径。

如何使用以上所有功能创建批处理文件

由于 Sunil Kumar Sahoo

5 个答案:

答案 0 :(得分:3)

如果jar是可执行的JAR(它似乎来自你的例子),你应该能够双击JAR文件。如果这不起作用,您应该将java可执行文件与用于打开具有.jar扩展名的文件的程序相关联。请参阅工具>文件夹选项>来自资源管理器窗口的文件类型

为了使程序“可分发”,通常将其打包(即JAR文件和启动脚本)在某些ZIP存档中,然后解压缩到用户PC上的文件夹中。您的启动脚本应提供JAR文件的相对路径。例如,如果您已将ZIP的内容组织到libbin文件夹中:

MyProject
  +--- lib (contains jars)
  +--- bin (contains .bat script)

在这种情况下,startup.bat文件应该将Jar引用为:

%JAVA_HOME\bin\java -jar ..\lib\myapp.jar

这需要任何用户:

  • 在他们的系统上安装JRE(除非你打包它)
  • 路径上有javaJAVA_HOME环境变量集

答案 1 :(得分:0)

问题是批处理文件不知道jar在哪里,它相对于它自己的路径。您也可以将jar文件复制到桌面。

如果只需要桌面上的图标,请创建批处理文件的快捷方式而不是副本。

答案 2 :(得分:0)

我了解您希望将应用程序分发到多台计算机上?一个(非常)简单的解决方案是创建一个zip / tar /任何包含所有需要的jar(包括MyApp.jar)和启动脚本的存档。

在脚本中,您可以使用-cp选项将类路径设置为jar:

java -cp needed.jar:needed2.jar -jar MyApp.jar

如上所述,制作桌面快捷方式比复制脚本本身更好。

答案 3 :(得分:0)

如果您的应用程序非常复杂(大小超过1 + GByte),您可以使用jre进行分发。

答案 4 :(得分:0)

因为在这里复制有点长,我建议你看一下Squirrel SQL的作用。并且你将有一个非常好的交叉数据库工具作为额外奖励; - )

它们可以通过两种可能的方式启动工具:

  • 通过启动jar本身,然后将从清单文件(see here)获取类路径信息以获取详细信息,查找下载扩展名。在这种情况下,按照其他海报的解释解压缩文件的层次结构后,只需在桌面上创建一个快捷方式就可以了。
  • 使用批处理文件。您将看到批处理文件解决方案非常复杂,尤其是类路径的构建。

所以我会选择第一个解决方案。