使用双击方式执行 .jar 文件

4
我一直使用Eclipse作为我的Java IDE,今天遇到了一个有趣的问题。我使用内置的文件>导出>可运行jar文件来为我的其中一个程序创建一个jar文件。如果我从命令行/批处理文件中启动它,它可以完美地运行,但是双击无法运行。我确保.jar文件与javaw相关联,但仍然无法工作。这不是一个必须要解决的大问题,但如果有人有任何想法,我很乐意听取。

更新:我尝试使用Aram Kocharyan的解决方案(请参见下面的答案)。没有成功。似乎只是这一个.jar文件有问题。所有其他的jar文件都可以通过双击启动。重新构建jar也没有帮助。 :P


双击 JAR 文件会发生什么?同时,从命令行运行它通常会发生什么? - prajeesh kumar
3个回答

2

这里有一些有趣的东西。我测试了你的指南,至少是后半部分,因为前半部分基本上是我已经做过的。由exej创建的应用程序不能通过双击运行,但是使用命令java -jar JarFile.jar的批处理文件可以。 - Anonymous Person
没有运气:( 我就是不明白。我甚至在其他项目中成功地使用过这个GUI。我甚至尝试注释掉除GUI初始化之外的所有内容并重新构建。Eclipse出于某种原因就是不喜欢我的项目。 - Anonymous Person
你尝试过创建一个简单的“Hello World”程序并进行测试吗? - Aram Kocharyan
是的。我构建的任何其他jar文件都可以正常工作。但重新构建,甚至移动到单独的eclipse项目中也不起作用。 - Anonymous Person
1
尝试比较.*(例如.settings)或Eclipse生成的任何文件与空项目,并查看是否有任何差异。然后制作一个jar并在命令行中启动它-看看是否会出现任何错误。可能是由于路径等原因找不到缺少的类文件。请注意,我所需的任何资源都需要位于exe和jar旁边。 - Aram Kocharyan
这个链接现在已经失效了。 - Scott

0

使用 javaw 命令打开你的 jar 包。
该命令位于 jre 的 bin 文件夹中... 在我的电脑上它的路径为 @

C:\Program Files\Java\jre\bin\javaw.exe

-1
把这个放在一个 .bat 文件里:
start javaw -classpath "%~dp0YOU-JAR-NAME.jar" -Djava.library.path="native" foo.package.bar.YourClassWithMainMethod

选项-Djava.library.path="native"不是运行所必需的,我包含它是因为使用.bat文件而不是双击.jar文件的一个原因是要使用JVM参数,在我的情况下,我需要这个参数来运行我的项目。

%~dp0部分获取当前目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接