«Файлы» внутри файлов .jar не являются файлами для операционной системы. Они представляют собой просто область файла .jar и обычно сжимаются. Они не могут быть адресованы ОС как отдельные файлы и поэтому не могут отображаться таким образом.
Сама Java имеет удобный способ обращения к этим файлам по некоторому URI (как вы поняли, используя getResource()
), но это полностью зависит от Java.
Если вы хотите, чтобы какое-то внешнее приложение получило доступ к этому файлу, у вас есть два возможных решения:
- Укажите какой-нибудь стандартизированный способ доступа к файлу или
- Сделать приложение способным обращаться к файлам, упакованным в файл .jar (или .zip).
Обычно 2 на самом деле не вариант (если другое приложение также не написано на Java, в этом случае это довольно просто).
Вариант 1 обычно выполняется путем простой записи во временный файл и ссылки на него. В качестве альтернативы вы можете запустить небольшой веб-сервер и предоставить файл по некоторому URL.