2012-09-11 31 views
1

當我在Eclipse中編譯和運行我的程序時,運行沒有異常。但是,當我將它導出到可運行jar或普通jar時,它找不到我的設置文件。.jar中的NoSuchFileException但不是在Eclipse中

我的路徑是:

String path= "src/settings/settings.ini"; 

在Eclipse運行沒有異常,但在一個罐子裏,它會立即拋出異常。

如何才能使jar正常工作,因爲它在eclipse中?

+1

檢查這個問題:http://stackoverflow.com/questions/12090882/trouble-turning-java-project-into-jar-file – phsym

+1

*「它引發異常」*什麼例外?請始終複製/粘貼異常輸出(堆棧跟蹤)。 –

回答

5

,而裏面的jar文件是沒有更多的物理文件,所以你可能需要閱讀它作爲流

getClassLoader().getResourceAsStream("settings/settings.ini"); 

考慮的Settings.ini是在classpath中(運行時)在指定的路徑

+0

我發現一個URL的getResource(String)對於訪問一個[嵌入資源]不僅更加可靠((InputStream)返回通常不可重定位),但鍵入時間也較短。 ;) –

+0

謝謝!完美的作品! –

+0

歡迎您:) –

0

如果ini文件位於jar歸檔,讀這樣的:

inputstream = getClass() 
      .getClassLoader() 
      .getResourceAsStream("settings/settings.ini"); 

否則,如果它位於你的JAR檔案之外,您應該移動或複製您的ini文件中./settings/settings.ini(相對於您的應用程序的當前工作目錄)。

相關問題