Открытие ресурса JAR как FileStream

У меня есть проект, где я хочу получить доступ к ресурсу в JAR из другого проекта. Это не находится на моем пути к классу, таким образом, ClassLoder не является опцией. Я попробовал:


new FileInputStream("C:\\mydir\\my.jar!\\myresource.txt");

и полученный FileNotFoundException.

JarInputStream мог бы быть возможностью, но я хочу гибкость входного имени файла, являющегося ресурсом банки, или просто файл в системе (пользователь решает). Существует ли класс, который может сделать это, или я должен создать тот сам?

5
задан User1 20 January 2010 в 23:01
поделиться

5 ответов

URL - ваш друг

URL.OpenStream .

3
ответ дан 15 December 2019 в 01:01
поделиться

Попробуйте использовать URLClasslass . Я сделал что-то похожее на это раньше, и, похоже, работает (хотя вам может понадобиться галочка с вашим файлом политики безопасности, если вы находитесь в безопасном JVM).

0
ответ дан 15 December 2019 в 01:01
поделиться

попробуйте использовать java.net.JarLConnection

URL url = новый URL("jar:file:C:\mydir\my.jar!\myresource.txt");

JarConnection = (JarLConnection)url.openConnection();

.
0
ответ дан 15 December 2019 в 01:01
поделиться
  private InputStream twistLid(File jar, String resource) throws IOException {
    return new URL("jar:" + jar.toURI() + "!" + resource).openStream();
  }
0
ответ дан 15 December 2019 в 01:01
поделиться

К счастью, высылка с «!» Символ не работает.

Посмотрите здесь:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4730642

1
ответ дан 15 December 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: