Java初学者。
我在Eclipse(在Windows上)上使用LWJGL lib和Slick创建了一个小型Java应用程序。然后,当我导出为可执行的.jar文件,并运行生成的.jar时,它不会执行任何操作。没有错误,没有任何错误 - 只是似乎没有运行。我正在学习本教程:http://www.cs.bsu.edu/homepages/pvg/misc/slick_eclipse_tutorial.php
这是我的manifest.mf文件的样子:
Manifest-Version: 1.0
Main-Class: SimpleTest
Class-Path: lib/lwjgl.jar lib/slick.jar
不使用LWJGL导出的应用程序就好了。我做错了什么?
我尝试使用JarSplice,虽然我可能会误用它,但它没有用。有什么指针吗?
答案 0 :(得分:5)
我最好的选择是您错过了Main-class
文件中manifest
的引用。
查看this,了解如何正确设置manifest
- 文件。
玩得开心!
修改强>
Manifest-Version: 1.0
Main-Class: SimpleTest
Class-Path: lib/lwjgl.jar lib/slick.jar
<-- new line without any content -->
编辑2:
好的,我能够重现这种行为。当我尝试通过控制台运行导出的jar时,我遇到以下异常:
Exception in thread "main" java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
...
... 5 more
在做了一些研究之后,我发现很难将原生dll包装到一个可执行的jar中 为了澄清,我发现了三个选项:
答案 1 :(得分:3)
我和eclipse和Slick有类似的问题,这就是我发现的。 (从 LWJGL wiki拉出)
我一直在java.lang.UnsatisfiedLinkError:java.library.path中没有lwjgl
这是因为未正确设置本机部分。将-Djava.library.path = path / to / dir添加到命令行或作为IDE中的VM选项,以便lwjgl能够找到包含本机文件的文件夹。
简而言之,导出的jar缺少适当的原生
现在,在编译为可运行的jar时,我假设你想要一个双击启动的应用程序,所以这不太可能。
您可以使用java.library.path
在启动后设置System.setProperty
,或将所需的本机置于默认库路径中。
我自己并没有找到最好的解决方案,但我希望这有帮助
答案 2 :(得分:0)
尝试使用Jar Splice http://ninjacave.com/jarsplice您需要做的就是将所有.jar文件(主要和库)和所有DLL都提供给它。它可以创建一个有效的.jar。它还可以生成可执行文件(.exe),以及Linux和Mac等效项。