4

Java初学者在这里。

我使用 LWJGL lib 和 Slick 在 Eclipse(在 Windows 上)中制作了一个小型 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,但它不起作用,尽管我可能会误用它。任何指针?

4

3 回答 3

5

我最好的选择是您错过了Main-classmanifest-file 中引用您的内容。

看看这个它显示了如何正确设置你的manifest-file。

玩得开心!

编辑:

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. 只需在 Eclipse 中通常将您的 jar 导出为Runnable JAR,然后将其放置在包含本机 dll 的文件夹中(检查一下,为我的教程设置工作)
  2. 在执行时将您的 dll 提取到临时目录中,如此处所述
  3. 或者使用One-Jar项目,它可以让您使用本机库创建可运行的 jar

希望这解决了你的问题。干杯!

于 2012-03-07T11:32:03.020 回答
3

我在 eclipse 和 Slick 上遇到了类似的问题,这就是我发现的。(取自LWJGL wiki

我不断收到 java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path

这是因为本机部分设置不正确。将 -Djava.library.path=path/to/dir 添加到命令行或作为 IDE 中的 VM 选项,以便 lwjgl 能够找到包含本机文件的文件夹。

简而言之,导出的 jar 缺少正确的本地人

现在,当编译为可运行的 jar 时,我假设您想要一个双击启动样式的应用程序,所以这不太可能。

您可以使用 设置java.library.path启动后System.setProperty,或将所需的本机放在默认库路径中。

我自己还没有找到最好的解决方案,但我希望这会有所帮助

于 2012-07-28T00:40:31.717 回答
0

尝试使用 Jar Splice http://ninjacave.com/jarsplice 您需要做的就是给它所有的 .jar 文件(主文件和库文件)和所有 DLL。它可以创建一个有效的 .jar。它还可以生成可执行文件 (.exe),以及 Linux 和 Mac 等效项。

于 2016-04-19T01:36:45.263 回答