【问题标题】:Package java application without needing to modify PATH打包java应用程序无需修改PATH
【发布时间】:2013-12-06 08:46:45
【问题描述】:

我有一个 Java 控制台应用程序,我可以使用 IntelliJ 将它打包成一个 jar 文件,并且可以使用具有以下命令的 bat 或 cmd 文件运行该程序:

java -jar main.jar

问题在于我的开发机器 (Windows) 修改了 JAVA_HOME 和 PATH,因此它可以正常工作。

有没有办法让我打包jar,这样不用modify the PATH就可以打开?

我已尝试在 SO 和其他网站上找到与 building the jar 相关的问题,但似乎所有这些仍然需要修改 PATH 变量。

Java's documentation 说:

运行 Windows 或 Mac OS X 的计算机通常不需要更改系统 PATH 变量。以下说明仅适用于高级用户或系统管理员。

如果是这种情况,那么如果其他人不是“高级用户”或“系统管理员”,他们如何运行该程序?

编辑:

顺便说一句,我知道这是可能的,因为一些 jar 文件,例如使用 Swing 框架的那些文件,只需双击 jar 即可运行,然后应用程序打开。

编辑 2:

This article 似乎是在正确的道路上。

编辑 3:

This is kinda what I was looking for,但是,它对我不起作用。我在现有 jar 上尝试的命令是 jar uvfm main.jar manifest.txt,它返回 updated manifest,但没有任何改变。

【问题讨论】:

  • 我不相信您能够获得将 JRE 与您的应用程序一起发布的权利,但这就是您需要做的。
  • 如果安装了 JRE,则应正确设置路径(根据 Windows 和 Mac OS Leopard (10.5.8) 的经验)。 ........ 如果没有安装 JRE,那么launch4j.sourceforge.net 和类似的工具可以提供帮助。有了这个,您只需将 已安装 JRE 添加到子文件夹中,用户无需安装任何东西。我不确定确定,但我相信我查看了 Oracle 是否可以接受这种方法,并且我认为我的发现是“是”。 ........最终,您可能希望启用双击启动功能:stackoverflow.com/a/32547250/3500521

标签: java deployment jar


【解决方案1】:

不,你不能。它们是系统变量。最好的办法是编写一个 shell 脚本来设置这些变量。

【讨论】:

  • 我不在乎操作系统是否知道java 命令。如果安装了 Java,那么 jar 文件应该与 Java 相关联,并且应该能够像任何其他应用程序一样打开,对吧?
  • 没有必要。按照建议捆绑 JRE(如果可能)或编写脚本。
【解决方案2】:

没有。它应该能够理解“java”命令。为此需要设置路径。但是,如果您打算将 jar 转换为应用程序,则需要将 jre 与您的应用程序一起提供。但我不认为这是你想要的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多