当前位置: 首页 > 知识库问答 >
问题:

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

厉令
2023-03-14

我在maven项目的src/main/resource文件夹中下载了.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执行时从资源中读取文件吗

共有1个答案

郭凡
2023-03-14

我想当你尝试读取文件时会发生这个错误。这是因为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);
}
 类似资料:
  • 问题内容: 我的项目具有以下结构: 我有一个文件,我想从单元测试中加载文件 我有此代码不起作用。它抱怨“没有这样的文件或目录”。 我也试过了 这也不起作用。它返回。我正在使用Maven构建我的项目。 问题答案: 尝试下一个: 如果上述方法不起作用,则已在以下类中添加了各种项目:1(代码在此处)。 以下是有关如何使用该类的一些示例:

  • 我已经将我的项目上传到githttps://github.com/gitekiras/spring-boot-gradle-mvc 我不能得到正确的是,我不能加载css和js从资源文件夹。 当我把它放在webapp文件夹,我能够得到每件事情的工作,但根据教程,我应该把它们放在资源的静态文件夹。 但是当我这样做的时候,我不能加载页面上的css和js。 谁能说出我错过了什么? 另外:当我在浏览器日志中

  • 项目结构: 我目前正在Eclipse中开发一个JavaFX应用程序,在从resources文件夹加载一个. css样式表时遇到了问题。 我已经将资源文件夹添加到类路径(项目属性 - 正在使用以下代码: 正在抛出 NullPointerException 我已经阅读了其他帖子并尝试了所有内容,但似乎无法让它工作。 编辑:设法通过删除和恢复bin文件夹使其正常工作。现在加载了.css,但由于某些原因它

  • 传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用: <script type='text/javascript' src='/static/js/common.js'> <link rel="stylesheet" type="text/css" href="/static/css/style.css" /> 系统提供了专门的标签来简化上面的导入: {load href="/stati

  • 我在我的android应用程序中有一个webview,加载的html文件在服务器上,但是我需要从应用程序的资产文件夹地址一些文件。我想问一下如何处理这些文件。 谢谢

  • 资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等。比方说,如果你的Hexo项目中只有少量图片,那最简单的方法就是将它们放在 source/images 文件夹中。然后通过类似于 ![](/images/image.jpg) 的方法访问它们。 对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组