Подтвердить что ты не робот

Как проверить наличие JAR файла и определенного файла внутри JAR?

Предположим, что имя файла находится в этом URL-адресе:

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

Эта операция приводит к IOException, если нет foo.jar или в существующей банке нет file.txt:

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

Можно ли проверять существование файла без исключения?

4b9b3361

Ответ 1

Вы можете использовать класс java.util.jar.JarFile и использовать 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
}

Ответ 2

Вы можете проверить CLASSPATH и самостоятельно найти банку. Тогда вы можете осмотреть банку самостоятельно. Я думаю, это будет не быстрее вашего пути, и не будет легче понять, так почему вы хотите избежать исключения?

Я не вижу в неправильном использовании исключения.