gpt4 book ai didi

java - 读取驻留在从另一个 jar 文件调用的 jar 中的文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:36:28 24 4
gpt4 key购买 nike

我有两个 jar 文件(比如说 jar1 和 jar2)。一个jar2里面有一个xml文件。我想读取 xml 文件。我用过

public void readXmlFile(){
InputStream resourceAsStream = MainFile.class.getResourceAsStream("/test.xml");
}

但是现在我使用 jar1 中的一个类调用这个函数

File file = new File(jar2);
URL url = file.toURL();
URL[] urls = new URL[] { url };
ClassLoader cl = new URLClassLoader(urls);
Class<?> compositeClass = cl.loadClass(XmlFileReader);
Method declaredMethod = compositeClass.getDeclaredMethod("readXmlFile");
Object newInstance = compositeClass.newInstance();
declaredMethod.invoke(newInstance);

现在我收到 FileNotFoundException,因为正在 jar1 而不是 jar2 中搜索 xml 文件,我不知道为什么会这样。谁能帮帮我?

最佳答案

我找到的唯一解决方案是在我的 jar1 中使用 System.setProperty(key, value) 设置系统属性作为包含我的两个 jar 的文件夹的路径。然后我读回我的 jar2 中的系统属性,然后像这样修改我的 readXml 方法

public void readXmlFile(){ 
JarFile jarFile = new JarFile(pathToJar2);
JarEntry entry = jarFile.getJarEntry("/test.xml");
InputStream inputStream = jarFile.getInputStream(entry);}

关于java - 读取驻留在从另一个 jar 文件调用的 jar 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com