怎么从外部读取jar包中的资源文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么从外部读取jar包中的资源文件相关的知识,希望对你有一定的参考价值。

直接把你的外部jar加载到systemclassloader试试看
可以通过反射的方式实现
for example
URLClassLoader loader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[] URL.class ); //反射获取方法
method.setAccessible(true);
File jar = new File(yourjarpath); //外部jar路径
URL url = jar.toURI().toURL();
method.invoke(loader, new Object[]url); //加载jar到systemclassloader
参考技术A URL resource = Class.class.getClassLoader().getResource(location);
String path = resource.toString();
log.info("文件路径:", path);
URL url = new URL(path);
JarURLConnection jarConnection = (JarURLConnection) url.openConnection();
in = jarConnection.getInputStream();
这个是读取运行中的jar的一些配置文件

jar包中读取资源文件 getResourceAsStream

此种方法可在编辑器中运行读取资源文件,打包成jar包后发布也可以读取到项目中文件

将资源文件如xxx.js放到项目的main/resources文件夹中

this.getClass().getClassLoader().getResourceAsStream("xxx.js")

以上是关于怎么从外部读取jar包中的资源文件的主要内容,如果未能解决你的问题,请参考以下文章

jar方式运行项目-读取jar包中的文件

从jar包中读取资源

SpringBoot:加载和读取jar包外面的资源文件

jar包中读取资源文件 getResourceAsStream

jar包中读取资源文件 getResourceAsStream

jar包中读取资源文件 getResourceAsStream