0

我想在unix和windows中运行一个jar文件,而不必直接用java调用它,比如:

java -jar myjar.jar parameters

我想要 :

myjar.jar parameters

我一直在阅读-

运行 JAR 文件而不直接调用 `java`

对于 unix 来说,这似乎是一个非常好的技巧。

但是,这在 Windows 中不起作用。

我正在寻找一种适用于 unix 和 windows 的统一解决方案,但我不确定是否存在。

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

4

3 回答 3

1

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

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

于 2012-06-09T16:30:17.873 回答
0

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

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

于 2012-06-09T16:33:02.737 回答
0

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

于 2012-06-09T16:29:13.653 回答