我想在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都必须运行。显式、由用户或作为脚本的一部分。你不能没有它。