Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Eclipse项目正确导出为可运行的Jar_Java_Eclipse_Jar_Executable Jar_Unsatisfiedlinkerror - Fatal编程技术网

Java 将Eclipse项目正确导出为可运行的Jar

Java 将Eclipse项目正确导出为可运行的Jar,java,eclipse,jar,executable-jar,unsatisfiedlinkerror,Java,Eclipse,Jar,Executable Jar,Unsatisfiedlinkerror,您好,我正在Eclipse中进行一个项目,并尝试将其导出,以便将其发送给一些朋友。我不知道如何导出,所以我看了一些YouTube视频,因为这是我在这个话题上所能找到的全部。这段视频说, 文件>导出 Java>Runnable Jar 下一个 设置项目启动配置、导出位置和库配置。(我使用的是lwjgl和slick 2d),所以我选择了“将所需库打包到生成的JAR中” 然后我试图在我的桌面上双击它,什么也没有。然后我在命令提示符下尝试使用“java-jar my_jar_name.jar”,它抛出了

您好,我正在Eclipse中进行一个项目,并尝试将其导出,以便将其发送给一些朋友。我不知道如何导出,所以我看了一些YouTube视频,因为这是我在这个话题上所能找到的全部。这段视频说,

  • 文件>导出
  • Java>Runnable Jar
  • 下一个
  • 设置项目启动配置、导出位置和库配置。(我使用的是lwjgl和slick 2d),所以我选择了“将所需库打包到生成的JAR中”
  • 然后我试图在我的桌面上双击它,什么也没有。然后我在命令提示符下尝试使用“java-jar my_jar_name.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(JarRsrcLoader.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:135)
            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 javaGame.Game.main(Game.java:37)
            ... 5 more
    
    如果需要更多信息,请让我知道
    另外,这是我想导出的Eclipse中的第一个Java项目,所以我以前没有这样做过。

    您可以这样运行jar:

    main_class_name是包含main方法的类名

    您还可以检查是否已成功创建了包含所有依赖项的jar,下面是我添加库jar的方法:

    选择项目,然后执行以下步骤:

    Build Path -> Configure Build Path... -> Select Libraries tab -> Add External JARS
    
    Build Path -> Configure Build Path... -> Select Libraries tab -> Add JARS
    
    或者,您可以创建一个名为
    lib
    的文件夹,并将jar放在
    lib
    目录中,然后您可以执行以下步骤:

    Build Path -> Configure Build Path... -> Select Libraries tab -> Add External JARS
    
    Build Path -> Configure Build Path... -> Select Libraries tab -> Add JARS
    

    您的问题与本机库有关,当您运行应用程序时,找不到所需的库。我想你一定是按照

    要运行你的应用程序,你必须

    java -Djava.library.path="<path to lwjgl native files>" -jar my_jar_name.jar
    
    java-Djava.library.path=”“-jarmy\u jar\u name.jar
    
    我是在参考了刚才发现的另一个堆栈溢出问题后发现的。我用JarSpitcher创建了一个胖罐子,把本地人放进我的罐子里,效果非常好。我现在可以通过双击来运行我的应用程序,它就像在Eclipse中一样运行,感谢您的支持


    应用程序在eclipse中运行正常吗?你一定是缺少了一个jar,它在eclipse中运行得很完美,如果我缺少了一个jar,我就没有注意到。对代码、输入/输出和结构化文档(如HTML或XML)使用代码格式。为此,请选择示例并单击消息发布/编辑表单上方的
    {}
    按钮。要部署Java桌面应用程序,最好的选择通常是安装该应用程序。使用。JWS在Windows、OS X和*nix上工作。同样的错误,我的项目(游戏)被称为Homefront Defense,所以我在命令提示符中使用它,因为它在lwjgl构建路径属性中是相同的:java-Djava.library.path=“Homefront Defense/lib/natives/Windows”-jar HomefrontDefense_Alpha0.1.jar我已经拥有了所有这些。我实际上是在遵循纽伯顿的一个教程。