我已经在eclipse中将项目导出到可运行的JAR中.我的代码中有一些地方我已经完成了以下操作.
String file = "src/Files/...";
loadFile(file); // purely for example
Run Code Online (Sandbox Code Playgroud)
既然项目是JAR的形式,那些目录似乎不存在,加载这些文件失败.我很确定我引用的文件是打包在JAR中的.导出到JAR时,目录是否以任何特定方式更改?关于如何使这项工作的任何其他想法?
您需要将它们视为类路径资源,而不是本地磁盘文件系统路径.当您将文件打包在JAR中并且您也不希望依赖于工作目录时,这不起作用.JAR中的文件已经是类路径的一部分.
假设您有一个foo.txt包中的文件com.example,那么您可以InputStream按如下方式获取它
InputStream input = getClass().getResourceAsStream("/com/example/foo.txt");
// ...
Run Code Online (Sandbox Code Playgroud)
或者当你在static上下文中时
InputStream input = SomeClass.class.getResourceAsStream("/com/example/foo.txt");
// ...
Run Code Online (Sandbox Code Playgroud)
或者当您想要扫描全局类路径时
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("/com/example/foo.txt");
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |