У меня есть каталог произвольных файлов, которые я хочу включить в свой jar - однако я не могу найти способ сделать это, работающий с экспортом -> «Runnable jar». Я пытался сделать каталог «исходным путем», но он все еще отсутствует, когда я создаю флягу. Я понимаю, что могу вручную добавить их в банку (это, в конце концов, просто zip) - или я мог бы использовать ant-скрипт или другую систему сборки - но я ищу что-то, что работает вне коробка Eclipse "Проект Java".
Вот пример. Я хочу попробовать загрузить log4j.properties, если он существует. Если нет, я хочу выписать его из включенного «по умолчанию» в моем jarfile. Наконец, он загружает значения по умолчанию, если это не удается.
Обратите внимание, что я пока не знаю, сработает ли приведенный ниже код, и, вероятно, потребуется его настройка. Я не прошу помощи с этим, я просто даю контекст для того, что я хочу сделать.
// initialize logging libraries
File log4jFile = new File("log4j.properties");
if (log4jFile.exists() & log4jFile.canRead()) {
PropertyConfigurator.configure(log4jFile.getAbsolutePath());
}
else {
try {
InputStream log4jJarstream = Main.class.getResourceAsStream(sepd + "resources" + sep + "log4j.properties");
OutputStream outStream = new FileOutputStream(new File("log4j.properties"));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = log4jJarstream.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
log4jJarstream.close();
outStream.flush();
outStream.close();
}
catch (Exception e) {
BasicConfigurator.configure();
log.warn("Error writing log4j.properties, falling back to defaults.");
}
}