阅读EAR的清单

时间:2015-03-06 20:44:17

标签: java java-ee glassfish classloader manifest

我需要加载我在Glassfish上作为EAR部署的应用程序的清单。

我在互联网上找到的所有信息都是关于阅读罐子或战争的清单。我试图将我发现的代码片段应用到我的问题中,但我还没有成功。我得到的是,我可以从我的EAR包含的罐子,或者甚至从Glassfish域lib文件夹中的罐子中获得任何清单。不是EAR之一。

EAR的结构:在根级别有一些jar,其中一个包含具有打算加载EAR清单的代码的类。

ClassLoader cl = getClass().getClassLoader();
resources = cl.getResources("META-INF/MANIFEST.MF");

我已经尝试了getResourceAsStream方法,但由于那次没能给我我想要的清单,我尝试了getResources方法来查看它可以给我的所有清单并迭代它们,看一下它们所在的路径。而且这些都不是EAR的表现。我得到了我的EAR中所有罐子的清单,以及Glassfish域中的所有lib罐子。

我也尝试将getClassLoader转换为URLClassLoader和EarClassLoader,正如其他StackOverFlow类似问题中所建议的那样,结果没有区别。

此EAR是从MyEclipse中的项目生成的,该项目只有EAR方面。该项目不包含任何代码,只引用其他最终将jar放入其中的项目。

2 个答案:

答案 0 :(得分:2)

MANIFEST.MF.ear的{​​{1}} <{1}},您必须实际打开classpath作为常规{{} 1}}文件并以这种方式阅读。

答案 1 :(得分:1)

您需要找到耳朵文件的位置,然后通过以下方式获取清单

new java.util.jar.JarFile(file).getManifest();