Java 从jar文件访问文件夹
我正在尝试使用一个jar文件,它本身就是另一个web项目中的web应用程序。在我使用eclipse的导出到jar功能创建的jar中,我将owl文件存储在一个文件夹中。要在jar中的代码中使用相对路径,我使用Java 从jar文件访问文件夹,java,Java,我正在尝试使用一个jar文件,它本身就是另一个web项目中的web应用程序。在我使用eclipse的导出到jar功能创建的jar中,我将owl文件存储在一个文件夹中。要在jar中的代码中使用相对路径,我使用 MyClass.class.getResource("/folderName").getPath(); 当我部署(glassfish)并将该项目作为一个单独的应用程序使用时,这一点很好。但当我在另一个项目中使用相同的方法时,我改变了路径,如下所示: BufferedReader br
MyClass.class.getResource("/folderName").getPath();
当我部署(glassfish)并将该项目作为一个单独的应用程序使用时,这一点很好。但当我在另一个项目中使用相同的方法时,我改变了路径,如下所示:
BufferedReader br = new BufferedReader(new InputStreamReader(MyClass.class.getResourceAsStream("/folderName"), "UTF-8"));
ArrayList<File> filesFromCommonOntology = new ArrayList<File>();
while(str = br.readLine() != null)
{
File f = new File(line);
System.out.println(f);
filesFromCommonOntology.add(f);
}
for (int i = 0; i < filesFromCommonOntology.size(); i++)
{
file = filesFromCommonOntology.get(i);
String filePath = file.getPath();
Model timeModel = FileManager.get().loadModel(filePath,
ApplicationConstants.N3);
}
如何解决此问题?当应用程序打包到jar中时,无法枚举文件夹中的文件。甚至很难想象这是如何工作的:您打开一个文件夹作为一个inptu流,并以这种方式读取文件名(在该文件夹中) 最简单的方法是添加一个文本文件,其中包含文件夹中的条目,可能有一些描述。MyClass.class.getResourceAsStream应该从jar打开文件(而不是文件夹) 如果您有大量的文件,您还可以尝试将自己的jar作为ZipFile重新打开,然后您可以使用ZipFile API搜索文件夹中的条目。然而,这更为复杂
BufferedReader br = new BufferedReader(new InputStreamReader(MyClass.class.getResourceAsStream("/folderName"), "UTF-8"));