2012-06-09 87 views
0

我想在这两个UNIX和Windows而不需要直接使用Java喜欢叫它运行jar文件:运行没有java -jar unix&windows的JAR?

java -jar myjar.jar parameters 

我想:

myjar.jar parameters 

我一直在阅读媒体链接 -

Running a JAR file without directly calling `java`

这似乎是一个很不错的黑客对未ix。

Howerver,这不会在Windows中工作。

我正在寻找一个统一的解决方案,可以在unix和windows上工作,但我不确定是否有这样的解决方案。

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

+0

Downlvoted没有解释。 Stackoverflow被动侵害再次袭击。我对此表示赞成,因为这是一个很好的问题,并且首先出现在Google搜索结果中。 –

回答

0

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

1

您提出的问题无法完成:Windows将仅在.exe文件中使用PE/COFF格式的.dll文件中加载可执行文件。

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

+0

“可以使用java -jar选项运行的JAR文件可以设置其执行权限,以便可以在不使用java -jar的情况下运行它们。请参阅JAR文件概述 http://docs.oracle.com/javase/ 7/docs/technotes/guides/jar/jarGuide.html“ (在http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html#CBBIJCHG) 那么,Oracle说什么? –

+0

@Jr。问题是关于“运行没有* Java的罐子”,即直接在o.s.级别 – Joni

+0

我非常不这么认为。在他的例子和'linux in hack'中显而易见。 –

0

您可以编写自己的bash和批处理/ powershell脚本。至于窗户,你可以尝试Launch4J。它应该比从零开始编写精细的脚本更容易。

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