有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从Eclipse将带有库的java项目导出到可运行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>

知道出了什么问题吗

注意:该项目在eclipse中运行得非常好


共 (4) 个答案

  1. # 1 楼答案

    您还需要本地lwjgl库并指向它。导出Jar功能无法处理此问题

    阅读lwjgl手册了解如何进行此操作

  2. # 2 楼答案

    您必须将罐子添加到以下位置之一:

    • java调用中的类路径

    • 舱单。主罐的mf

    Java不会自动加载JAR,直到它们位于这些位置之一

  3. # 3 楼答案

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

  4. # 4 楼答案

    尝试使用文件->;房地产->;Java构建路径->;订购和出口