Как проверить наличие 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 */);
Можно ли проверять существование файла без исключения?
Ответы
Ответ 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 и самостоятельно найти банку. Тогда вы можете осмотреть банку самостоятельно. Я думаю, это будет не быстрее вашего пути, и не будет легче понять, так почему вы хотите избежать исключения?
Я не вижу в неправильном использовании исключения.