从eclipse插件中的jar文件中读取类名

时间:2013-04-11 05:10:24

标签: java eclipse-plugin

我需要从jar文件(OSGified)中读取类名(只是简单名称)。我已将jar文件放在lib文件夹中,并将其添加到类路径中。这是我写的代码:

public void  loadClassName() throws IOException {
    JarFile jf = new JarFile("/lib/xxxx-1.0.0.jar");
    List<String> list = new ArrayList<String>();
    for (JarEntry entry : Collections.list(jf.entries())) {
        if (entry.getName().endsWith(".class")) {
            String className = entry.getName().replace("/", ".").replace(".class", "");
            list.add(className);
        }
    }
}

不知怎的,我在构造jarfile对象时遇到了Filenotfound异常。有人能告诉我们应该如何给JarFile构造函数提供jar路径吗?

2 个答案:

答案 0 :(得分:0)

试试这个: JarFile jf = new JarFile("lib/xxxx-1.0.0.jar");

答案 1 :(得分:0)

感谢用户@Perception。他的回答完美无瑕。

这是工作代码:

 final InputStream jarStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("lib/xxxxx-1.0.0.jar");
        JarInputStream jfs = new JarInputStream(jarStream);
        List<String> list = new ArrayList<String>();
        JarEntry je = null;
        while (true) {
            je = jfs.getNextJarEntry();
            if (je == null) {
                break;
            }
            if (je.getName().endsWith(".class")) {
                String className = je.getName().replace("/", ".").replace(".class", "");
                    list.add(className);
            }
        }