2012-09-11 29 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(相对于您的应用程序的当前工作目录)。

相关问题