欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 读取Jar包下文件资源的问题及解决方案

读取Jar包下文件资源的问题及解决方案

2025/9/25 17:20:59 来源:https://blog.csdn.net/saya21/article/details/139866012  浏览:    关键词:读取Jar包下文件资源的问题及解决方案

问题

项目A代码调用到Resouces下的文件a.sh,打包成Jar包后,项目B调用对应方法时,出现报错,找不到a.sh文件路径,原来的代码可能是:

URL resource = getClass().getClassLoader().getResource("a.sh");
String path = resource.getPath();
System.out.println(path);

这样项目B是读取不到文件的。

解决方案

通过stream流获取文件,创建临时文件,记得处理异常以及临时文件执行结束后删除。

 // 使用 ClassLoader 获取资源文件的 InputStreamInputStream inputStream = this.class.getClassLoader().getResourceAsStream("a.sh");if (inputStream == null) {throw new IOException("The script file was not found in the resources directory.");}// 创建临时文件File tempScript = Files.createTempFile("tempScript", ".sh").toFile();tempScript.setExecutable(true);// 将资源文件内容写入临时文件try (FileOutputStream outputStream = new FileOutputStream(tempScript)) {byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead);}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词