我想在 unix和windows 中运行一个jar文件,而不必直接用java调用它:
java -jar myjar.jar parameters
我想:
myjar.jar parameters
我一直在阅读 -
Running a JAR file without directly calling `java`
对于unix来说,这似乎是一个非常好的黑客。
Howerver,这在Windows中不起作用。
我正在寻找一个可以在unix和windows上运行的统一解决方案,但我不确定是否有这样的解决方案。
解决方案必须只有一次,它必须包含与jar相关的更改,而不是操作系统 - 因为这是我向客户提供的文件。
答案 0 :(得分:1)
您要求的无法做到:Windows将仅以.exe文件中的.exe中使用的PE/COFF格式加载可执行文件。
您可以做的是为用户提供启动实际Java程序的“包装器”程序。您可以在C中创建包装器,它有几个好处:您可以在可执行文件上设置图标,并将程序与Windows资源管理器中的文件类型相关联。 Batch files是一种受欢迎的选择;它们更容易创造。
答案 1 :(得分:0)
您可以提供启动Unix(.sh)和Windows(.bat)应用程序的脚本。这似乎是许多公司的首选方法。一个例子是JBoss Server,其中为Windows提供run.bat,为Unix提供run.sh.这些脚本设置适当的环境变量,类路径等,然后调用java。
答案 2 :(得分:0)
您可以编写自己的bash和batch / powershell脚本。至于Windows,您可以尝试Launch4J。它应该比从头开始编写复杂的脚本更容易。
请注意,您只能提供包装以使执行更简单(单击一下)。无论如何都必须运行Java。显式地,由用户显示,或作为脚本的一部分。你不能没有它。