ramondaluca Ответов: 0

Как мне вставить ресурсы в JAR-файл, а затем прочитать их самым простым способом?


Всем привет,

У меня есть вопрос. Я хочу создать JAR-файл с внутренним ресурсом, который является xml-файлом. Затем мне нужно импортировать этот JAR-файл в другой Java-проект и использовать этот файл с другими функциями.
Является ли то, что я пробовал, "неплохим" решением или есть лучшие решения?

Заранее Вам большое спасибо!

Что я уже пробовал:

String fileName = "test.xml";
String fileNameJar = "testjlib.jar";
String testFilePath = System.getProperty("user.dir") + "/lib/" + fileName;
JarFile jar = new JarFile(new File("lib/" + fileNameJar));
InputStream inStr = jar.getInputStream(jar.getEntry(fileName));
byte[] buffer = new byte[inStr.available()];
inStr.read(buffer);
OutputStream outStream = new FileOutputStream(new File(testFilePath ));
outStream.write(buffer);
outStream.close();

Richard MacCutchan

Это зависит от того, что еще вам нужно в файле jar. Если все, что вам нужно,-это XML, то вам не нужно, чтобы он был завернут в банку, вы можете использовать его отдельно.

ramondaluca

Спасибо за Ваш быстрый ответ!
Ну, в моем JAR-файле у меня также есть некоторые файлы .class и папка META-INF, которую использует второе JAVA-приложение. Моя цель поместить xml-файл внутрь JAR заключается в том, что таким образом у меня есть все файлы моего пакета внутри JAR вместо того, чтобы иметь файл JAR и вне xml-файла. Но, может быть, стандартная структура, когда вам нужно принести ресурсы в ваш пакет, заключается в том, чтобы поместить их за пределы банки?
Спасибо!

ramondaluca

Спасибо за Ваш быстрый ответ!
Ну, в моем JAR-файле у меня также есть некоторые файлы .class и папка META-INF, которую использует второе JAVA-приложение. Моя цель поместить xml-файл внутрь JAR заключается в том, что таким образом у меня есть все файлы моего пакета внутри JAR вместо того, чтобы иметь файл JAR и вне xml-файла. Но, может быть, стандартная структура, когда вам нужно принести ресурсы в ваш пакет, заключается в том, чтобы поместить их за пределы банки?
Спасибо!

0 Ответов