2013-07-08 84 views
3

你好我正在Eclipse中的一个项目上工作,我试图导出它,所以我可以把它发送给一些朋友。对于如何导出,我无能为力,所以我看了一些YouTube视频,因为这是我能找到的关于该主题的所有内容。视频说:正确导出我的Eclipse项目作为可运行Jar

  1. 文件>导出
  2. 的Java>运行的JAR
  3. 下一页
  4. 设置项目的启动配置,出口位置,和库配置。 (我正在使用lwjgl和slick 2d),因此我选择了“将所需库包装到生成的JAR中”。

然后我试图在桌面上从双击启动它,没有任何东西。然后,我从命令提示符试图与“Java的罐子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 

这是我在我的项目主要方法:

供参考:第一行是行# 34最后是#43

public static void main(String[] args) { 
    AppGameContainer appgc; 
    try{ 
     appgc = new AppGameContainer(new Game(gamename)); 
     appgc.setDisplayMode(appgc.getScreenWidth(), appgc.getScreenHeight(), true); 
     appgc.start(); 
    }catch(SlickException e){ 
     e.printStackTrace(); 
    } 
} 

如果需要更多信息,请让我知道!
P.S.这是我想要导出的Eclipse中的第一个Java项目,所以没有我以前没有做过。

+0

该应用程序是否在eclipse中运行OK?你必须在某处丢失一个罐子 – OldProgrammer

+0

是的,它在日食中运行完美无缺,如果我遗漏了罐子,那不是我注意到的。 – WillB

+0

使用代码格式设置代码,输入/输出和结构化文档,如HTML或XML。为此,请选择样本并单击邮件发布/编辑表单上方的“{}”按钮。 –

回答

1

我引用另一个堆栈溢出的问题,我只是发现刚才之后想通了。我用JarSplicer创建了一个Fat Jar,其中包括当地人加入我的jar,并且完美运行。我现在可以通过双击运行我的应用程序,它就像在Eclipse中一样运行,感谢您的支持!

Exporting eclipse project to jar

1

你可能会碰到你的罐子像这样:

java -jar my_jar_name.jar main_class_name 

main_class_name是包含main方法的类名

您还可以检查是否已成功创建了一个罐子与所有的依赖关系,这里是我如何添加库罐:

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

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

或者,您可以创建一个名为lib文件夹,然后把罐子在lib目录,则可以执行以下步骤:

Build Path -> Configure Build Path... -> Select Libraries tab -> Add JARS 
+0

我试过了,并得到了同样的错误,因为我得到了上述。 – WillB

+0

我已经拥有了所有这些。我实际上是在从新波士顿那里得到一个教程。 – WillB

1

您的问题与本机库有关,当您运行应用程序时找不到所需的库。我假设你有一个按照说明在

http://www.lwjgl.org/wiki/index.php?title=Setting_Up_LWJGL_with_Eclipse

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

java -Djava.library.path="<path to lwjgl native files>" -jar my_jar_name.jar 
+0

同样的错误,我的项目(游戏)被称为Homefront Defense,所以我在命令提示符中使用了它,因为它在lwjgl构建路径属性中是相同的:java -Djava.library.path =“Homefront Defense/lib/natives/windows” -Jar HomefrontDefense_Alpha0.1.jar – WillB

相关问题