如何检查JAR中是否存在JAR文件和特定文件?

时间:2011-03-14 18:31:00

标签: java

假设文件名在此URL中:

URL file = new URL("jar:file:/path/to/foo.jar!/META-INF/file.txt");

如果现有jar中没有IOException或者没有foo.jar,则此操作会导致file.txt

import org.apache.commons.io.FileUtils;
FileUtils.copyURLToFile(file, /* some other file */);

是否有可能在没有异常捕获的情况下验证文件是否存在?

2 个答案:

答案 0 :(得分:12)

您可以使用java.util.jar.JarFile class,并使用getJarEntry方法查看该文件是否存在。

JarFile jar = new JarFile("foo.jar");
JarEntry entry = jar.getJarEntry("META-INF/file.txt");
if (entry != null) {
    // META-INF/file.txt exists in foo.jar
}

答案 1 :(得分:0)

您可以检查CLASSPATH并自己搜索jar。然后你可以自己检查一下罐子。我想它不会比你的方式更快,也不会更容易理解,所以你为什么要避免异常呢?

我没有看到使用异常时出错。