Возможно ли в Java читать файлы, помещенные в Jar, которые тоже помещены в Ear? - PullRequest
0 голосов
/ 15 ноября 2010

Мне было интересно, возможно ли найти содержимое в XML-файле, помещенном в банку, которая также помещается в ухо.Это помогло бы мне найти свойства Java-бинов.

Вплоть до ушей я могу перебирать документы и видеть, что внутри, но если это банка, я не могу перебирать документы внутри этого.

Кто-нибудь может дать мне совет?

Ответы [ 3 ]

1 голос
/ 15 ноября 2010

, поэтому я только что проверил, что вы хотите сделать - и пока JAR находится в пути к классу вашего EAR, вы можете получить доступ к любому файлу внутри него.в основном попытка найти файл в корне контекста вашего приложения.

например, если в вашем JAR-файле файл abc.xml находится в пакете a.b.resources, то, например, из сервлета в вашем EAR вы можете получить к нему доступ:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("a/b/resources/abc.properties");

1 голос
/ 15 ноября 2010

Из файла ear вы сможете извлечь файл jar. Затем вы можете использовать WinZip , 7 Zip и т. Д., Чтобы исследовать содержимое jar-файла в графическом интерфейсе. Или вы можете запустить команду jar tf , чтобы извлечь содержимое файла jar из командной строки. Если у вас нет ни одного из этих инструментов и вы не используете windows, то вы можете переименовать файл jar в .zip, и windows сможет его изучить (в большинстве случаев это работает).

Изменения - я не уверен, что вы хотели сделать это с помощью Java. В этом случае вы ищете JarFile . Я нашел пример этого здесь для программного изучения содержимого Jar.

0 голосов
/ 15 ноября 2010

Да, вы можете прочитать любой файл, упакованный в zip-файл.Не имеет значения, сколько вложенных zip-файлов вы должны открыть на своем пути.Используйте ZipInputStream, получите необходимый ZipEntry, прочитайте его содержимое.Если это все еще zip, откройте его и делайте это снова и снова, пока вы не получите доступ к требуемому ресурсу.

...