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

2025-04-09 00:58:23
推荐回答(2个)
回答1:

直接把你的外部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

回答2:

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的一些配置文件