将带有库的项目导出到Eclipse中的可运行jar

时间:2012-03-07 23:20:56

标签: java eclipse executable-jar

我正在尝试导出我正在处理的游戏测试(使用Slick库),发送给没有任何IDE的合作伙伴,所有在eclipse中导出都很顺利,但是当我尝试运行时从命令提示符开始,这就是我得到的回报。

C:\Users\Noah\Desktop>java -jar test.jar
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.lwjgl.Sys$1.run(Sys.java:73)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
        at org.lwjgl.Sys.loadLibrary(Sys.java:95)
        at org.lwjgl.Sys.<clinit>(Sys.java:112)
        at org.lwjgl.opengl.Display.<clinit>(Display.java:141)
        at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)

        at org.nor.Main.main(Main.java:16)
        ... 5 more

C:\Users\Noah\Desktop>

知道出了什么问题吗?

注意:该项目在日食中运行得很好。

4 个答案:

答案 0 :(得分:1)

您还需要本机lwjgl库并指向它。 Export Jar功能无法解决此问题。

阅读lwjgl手册,了解如何执行此操作。

答案 1 :(得分:1)

如果您打算使用它,您应该阅读光滑的“入门”指南。 Slick有几个使用dll与opengl通信的依赖项。您需要指定这些dll的保存位置,以便这些依赖项可以加载dll。我找到了this链接可能有助于您这样做..

答案 2 :(得分:0)

您必须将您的罐子添加到:

  • java调用中的类路径

  • 你主罐的Manifest.mf

Java不会自动加载你的jar,直到它们位于其中一个位置。

答案 3 :(得分:0)

尝试使用文件 - &gt;属性 - &gt; Java构建路径 - &gt;订单和出口