Доступ к документам, упакованным в jar-файл - PullRequest
0 голосов
/ 14 декабря 2010

Я пытаюсь получить путь к файлу документа, который упакован как ресурс, в файл JAR, чтобы я мог отобразить его в Swing-приложении.Теперь у меня все работает, когда я запускаю его из Eclipse, но если я экспортирую его в исполняемый файл JAR, я не могу получить доступ к документам, которые упакованы в файл JAR.Как я могу получить путь к файлу документа, когда он находится внутри jar-файла?

Вот строка кода, показывающая, как я пытаюсь получить доступ к документу:

File document = new File(getClass().getResource("/resources/documents/document.pdf").getPath());

1 Ответ

3 голосов
/ 14 декабря 2010

Единственный вид "пути к файлу", который существует для чего-то внутри файла JAR, - это путь относительно корня JAR. Но в вашем случае кажется, что вы это уже знаете (это "/resources/documents/document.pdf"). Файлы внутри файла JAR не имеют пути, который вы можете использовать для прямого доступа к ним, поскольку они не существуют в реальной файловой системе. Вам нужно использовать либо getResource (), либо getResourceAsStream () для доступа к ним. Сейчас я не помню, какие классы используются для изображений в Swing, но посмотрите на эти классы внимательно - у них должны быть перегруженные методы, которые принимают что-то вроде InputStream или URL вместо пути к файлу.

...