gpt4 book ai didi

java - 从 jar 文件访问该文件夹

转载 作者:行者123 更新时间:2023-12-01 14:52:58 24 4
gpt4 key购买 nike

我正在尝试使用一个 jar 文件,该文件本身就是另一个 Web 项目中的 Web 应用程序。在我使用 Eclipse 的导出到 jar 功能创建的 jar 中,我将 owl 文件存储在一个文件夹中。要在 jar 中的代码中使用相对路径,我使用访问它

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);
}

但是当我运行该项目时,我得到了该行的空指针异常

BufferedReader br = new BufferedReader(new InputStreamReader(MyClass.class.getResourceAsStream("/folderName"), "UTF-8"));

如何解决这个问题?

最佳答案

应用程序打包成jar后,无法枚举文件夹中的文件。甚至很难想象这是如何工作的:您打开一个文件夹作为 inptu 流并以这种方式读取文件名(在该文件夹中)?

最简单的方法是添加一个包含文件夹中条目的文本文件,可能还带有一些描述。 MyClass.class.getResourceAsStream 应该从 jar 中打开文件(而不是文件夹)。

如果您有大量文件,您还可以尝试将自己的 jar 重新打开为 ZipFile,然后您可以使用 ZipFile API 搜索文件夹中的条目。然而这更复杂。

关于java - 从 jar 文件访问该文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com