2009-10-21 41 views
1

嗨我创建了一个java应用程序并创建了一个jar文件。然后,我创建了一个批处理文件,EG->startup.bat这个文件的内容是现在java -jar MyApp.jar如何制作我的jar的可分发批处理文件

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

另外我想我的批处理文件自动设置类路径。

如何。如果罐子是一个可执行的JAR(这似乎是从你的例子),你应该能够创建一个批处理文件与上述所有功能

感谢 苏尼尔·库马尔Sahoo

回答

3

双击JAR文件。如果这不起作用,您应该将java可执行文件与用于打开文件的程序关联起来,并将.jar扩展名关联起来。从资源管理器窗口查看工具>文件夹选项>文件类型

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

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

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

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

这就要求任何用户:

  • 有其系统上安装了JRE(除非你包起来为好)
  • java他们的道路上或JAVA_HOME环境变量设置
+0

我可以为我自己的系统做到这一点。但是,如果我给朋友谁只想通过双击jar文件或批处理文件运行该应用程序,那么我必须做什么 – 2009-10-21 07:11:48

+0

* @ Sunil * - 请参阅我的编辑。请注意,你的朋友已经安装了Java JRE(路径上有'java'或者'JAVA_HOME' env变量集),这样才能正常工作 – 2009-10-21 07:13:41

+0

谢谢,正如你所提到的,我必须只粘贴%JAVA_HOME \ bin \ java -jar .. \ lib \ myapp.jar在startup.bat中,或者我是否需要wtite任何其他的东西eg-java -jar MyApp.jar或者我不需要。 – 2009-10-21 07:18:31

0

的问题是,该批处理文件不知道罐子,它是相对从自己的路寻找。你也可以将jar文件复制到你的桌面上。

如果只想在桌面上显示一个图标,请创建批处理文件的快捷方式而不是副本。

+0

如果Sunil *将JAR文件放在某个共享目录中,或者如果每个用户将它放入同一目录中,这只是“可分发” – 2009-10-21 07:09:12

0

据我所知,你想分发你的应用程序到多台机器?一个(非常)简单的解决方案是创建一个zip/tar /任何包含所有必需jar(包括MyApp.jar)和启动脚本的存档。

在脚本中可以使用-cp选项到类路径设置的罐子:

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

正如上面所说的,作出快捷方式到桌面是不是复制脚本本身是更好的选择。

0

如果您的应用程序相当复杂(大小超过1 GB),您可以使用jre将其分发。

0

因为在这里复制的时间有点长,所以我建议你看看Squirrel SQL做什么。你就会有一个非常好的跨数据库工具,作为一个额外的奖金;-)

他们使工具在两种可能的方式来启动:

  • 通过启动罐子本身,classpath中的信息将然后从清单文件中获取(详细信息请参见see here,查找下载扩展)。在这种情况下,按照其他海报解释文件层次结构解压缩之后,只需在桌面上创建一个快捷方式,并将所有文件都设置为
  • 。您会看到批处理文件解决方案非常复杂,特别是构建类路径。

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

相关问题