2016-05-18 5 views
-1

Я использую библиотеку Jasper для совершения вызовов в прологовом файле. Это, как это делается вызов:Путь к ресурсу внутри исполняемого jar

sics = new SICStus(); 
sics.load("https://stackoverflow.com/a/string/with/path/to/source.pl"); 

Что я пытаюсь сделать, это генерировать банку исполняемый файл, который содержит исходный файл. Проблема в том, что я не могу найти способ получить путь к ресурсу, содержащемуся в банке. До сих пор я могу получить URL к банку:

URL url = getClass().getResource(file_name); 
String path = url.getPath(); 

Вопрос заключается в том, как я могу дать объект «ПКИ» путь к исходному файлу source.pl в банке?

Что заставило меня понять проблему:

файлов в Java может представлять только прямые файлы файловой системы, а не те, в зип/фляги архивы. Чтобы исправить это: Попробуйте использовать getClass().getResourceAsStream() и используйте это вместо File.

Ссылка:URI is not hierarchical exception when running application from JAR

ответ

2

Guess этот вопрос уже ответил, если я не неправильно вы спрашиваете. Пожалуйста, смотрите здесь: How to get the path of a running JAR file? или здесь How to get a path to a resource in a Java JAR file и здесь Loading a file relative to the executing jar file.

+0

Да, я видел все эти сообщения, попробовал все варианты, которые они дали. Это может быть моя ошибка, но я нахожу эти ответы или пытаюсь решить проблему или просто недостаточно ясно. –

Смежные вопросы