从资源位置读取jar文件

时间:2015-06-12 05:38:26

标签: java

在我的应用程序中,我必须读取磁盘位置中可用的jar文件,并从jar中分离.classes文件。

代码是

     JarFile jarFile = new JarFile("./resources/CD.jar");

    for(Enumeration<JarEntry> em = jarFile.entries(); em.hasMoreElements();) {  
        String s= em.nextElement().toString();
        ZipEntry entry = jarFile.getEntry(s);

        String fileName = s.substring(s.lastIndexOf("/")+1, s.length());
        if(fileName.endsWith(".class")){
            System.out.println(fileName);
        }

但我收到错误

java.io.FileNotFoundException: .\resources\CD.jar (The system cannot find the path specified).

3 个答案:

答案 0 :(得分:0)

您是否尝试在类路径中添加CD.jar文件?我会尝试这样做一次。

答案 1 :(得分:0)

".\resources\CD.jar"更改为完全限定的URI。例如:C:\Users\Whoever\Documents\resources\CD.jar

答案 2 :(得分:0)

在这里,我找到了解决问题的方法。 1.将“资源”位置添加到类路径中 2.允许外部服务API将cd.jar放在资源位置 3.使用子类加载器将cd.jar添加到类路径中 代码段如下:

URLClassLoader childLoader = new URLClassLoader(new URL [] {getURLOfTestclass()},this.getClass()。getClassLoader());

URL url = getClass()。getClassLoader()。getResource(&#34; CD.jar&#34;);         return url;