在Eclipse中,我导出的可执行jar不会做任何事情! (LWJGL)

时间:2012-03-07 08:57:55

标签: java eclipse lwjgl slick2d

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,虽然我可能会误用它,但它没有用。有什么指针吗?

3 个答案:

答案 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. 通常只需将您的jar导出为Eclipse中的 Runnable JAR ,然后将其放在包含本机dll的文件夹中(选中此项,在我的教程中使用您的设置)
  2. 执行时将您的dll提取到here
  3. 所述的临时目录中
  4. 或使用One-Jar项目,该项目允许您使用本机库创建可运行的jar
  5. 希望这能解决你的问题。干杯!

答案 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等效项。