gpt4 book ai didi

java - 获取嵌套 .jar 中的 .class 文件

转载 作者:行者123 更新时间:2023-12-01 19:18:54 26 4
gpt4 key购买 nike

我需要获取 .jar 文件中的所有 .class 文件,而该文件又位于另一个 .ear 文件中。

我正在尝试使用 JarInputStream 来访问 .ear。这工作正常。但是,当我迭代 JarInputStream 内的 JarEntry 元素时,我似乎无法将其作为 Jar 文件打开以读取其中的任何 .class 元素。

JarInputStream jarFile = new JarInputStream(new FileInputStream("c:/path/to/my/.ear"));

JarEntry jarEntry = null;

while(true) {

jarEntry = jarFile.getNextJarEntry();

if(jarEntry == null) {
break;
}

if((jarEntry.getName().endsWith(".jar"))) {
//Access to the nested jar?
}
}

编辑:值得一提的是,上面的代码与我试图以编程方式查找的类位于同一个 jar 中。

最佳答案

您应该首先从 .ear 文件中提取 .jar 文件,然后尝试读取类文件。

事实上,甚至应用程序服务器也是这样做的。他们将 EAR 文件提取到临时目录中,然后从那里加载类。

关于java - 获取嵌套 .jar 中的 .class 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5317151/

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