java - 使用 java jar 从资源文件夹加载文件

标签 java maven jar maven-3

我在 Maven 项目的 src/main/resource 文件夹中有 download.sh 文件,我正在通过下面的代码阅读它

 ClassLoader classLoader = getClass().getClassLoader();
 File file = new File(classLoader.getResource("download.sh").getFile());

当我将其作为独立应用程序运行时,该文件正在读取。

如果我使用 jar ex 将其作为应用程序运行:-

java -jar runScript.jar SCHEMA_NAME

/Users/IdeaProjects/RunScript/target/file:/Users/IdeaProjects/RunScript/target/RunScripts.jar!/download.sh": error=2,没有这样的文件或目录

任何人都可以帮助我在使用 jar 执行时从资源中读取文件

最佳答案

我认为当您尝试读取该文件时会发生此错误。这是因为 jar 中的资源不是文件而是流。所以你应该使用

getClass().getResourceAsStream("download.sh");

然后读取该流,例如:

InputStream resourceStream = getClass().getResourceAsStream("download.sh")
BufferedReader br = new BufferedReader(new InputStreamReader(resourceStream));
String line;
while ((line = br.readLine()) != null) {
    // do something
    System.out.println(line);
}

关于java - 使用 java jar 从资源文件夹加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917335/

相关文章:

java - Eclipse创建的 "src"目录是什么?

java - 使用 Java 进行独立原型(prototype)设计

android - 如何将 android 库项目导出为 jar 文件,该文件将包含它自己引用的库项目的 jar

java - 如何在所有操作系统上运行 .jar 文件并将输出保存到文件中?

Java - 文件路径 - 无效的转义序列

java - 相对文件路径问题

java - spring-boot 应用程序中的缓慢单元测试

java - maven-eclipse-plugin 附加源目录不起作用

java - 运行 OSGi 包中包含的 jar

java - 如何在android中的textview顶部使用红色*符号