Я написал код для отправки сообщений в MQ, и я использую log4j для записи результатов.
Итак, у меня есть 2 файла свойств, один файл журнала, в который будут записываться журналы, и 3 файла jar.
Все мои файлы свойств и файлы выходных журналов находятся в src / main / resources, а мой основной класс (исходный код) - в src / main / java.
Мой код:
try {
istream = new FileInputStream("log4j.properties");
Prop.load(istream);
istream.close();
} catch (Exception e) {
System.out.println("error in loading log4j prop file");
}
try {
Properties pro = new Properties();
String filename = "config.properties";
InputStream is = new FileInputStream(filename);
} catch (Exception a) {
System.out.println("config file not loaded");
}
Мой POM
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.ibm.Mq</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
Но когда в своем коде Java я указываю полный путь к файлам конфигурации, например, "C: /users/files/config.propertues", он работает нормально. Но я не хочу, чтобы это произошло, потому что, если я запустил его в Linux или в любой другой среде, он снова выдаст ошибку.
Я использовал приведенную ниже команду для упаковки моего jar
mvn clean package assembly:single
Я получил ошибку ниже, когда запустил свой jar
error in loading log4j prop file
config file not loaded