在没有java -jar unix和windows的情况下运行JAR?



我想在Unix和Windows中运行jar文件,而不必直接用java调用它,就像:

java -jar myjar.jar parameters

我想要 :

myjar.jar parameters

我一直在阅读——

在不直接调用"java"的情况下运行JAR文件

这似乎是Unix的一个非常好的黑客。

霍弗,这在窗户上不起作用。

我正在寻找一种可以在 unix 和 windows 上运行的统一解决方案,但我不确定有这样的解决方案。

解决方案只需要一次,并且它必须仅包含与jar相关的更改,而不是与操作系统相关的更改 - 因为这是我提供给客户端的文件。

您所要求的是无法完成的:Windows 将仅以 .exe 中使用的 PE/COFF 格式加载可执行文件.dll文件。

相反,您可以做的是为用户提供一个"包装器"程序来启动实际的Java程序。您可以使用 C 语言创建包装器,这有几个好处:您可以在可执行文件上设置图标并将程序与 Windows 资源管理器中的文件类型相关联。批处理文件是一种流行的替代方案;它们更容易创建。

您可以提供一个脚本来启动 Unix (.sh) 和 Windows (.bat) 的应用程序。这似乎是许多公司的首选方法。一个例子是JBoss Server,其中为Windows提供了运行.bat,为Unix提供了 run.sh。这些脚本设置适当的环境变量、类路径等,然后调用 java。

您可以编写自己的 bash 和批处理/powershell 脚本。至于Windows,你可以尝试Launch4J。这应该比从头开始编写复杂的脚本更容易。

请注意,您只能提供包装器以使执行更简单(一键)。无论如何,Java都必须运行。显式、由用户或作为脚本的一部分。你不能没有它。

最新更新