2013-07-08 88 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

相關問題