Мое намерение - предоставить пакетный файл, который выполняет jar приложения / инструмента java для команды функциональных аналитиков, которые не знают java.Когда я выполняю командный файл, я получаю ошибку ниже.Любая помощь высоко ценится.
Как отладить, чтобы выяснить, есть ли проблемы в main (), который заботится о загрузке файлов log4j и config?
Exception in thread "main" java.lang.NoClassDefFoundError: x.y.XYZClass Caused by: java.lang.ClassNotFoundException: x.y.XYZClass at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: x.y.XYZClass
. Program will exit.
Это то, что я сделал до сих пор: я упаковал приложениеиспользуя Maven со следующей структурой каталогов:
bin/run.bat
lib/application.jar and other jars that it depends on
config.properties
log4j.xml
содержимое файла манифеста jar:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By:
Build-Jdk: 1.6.0_20
Main-Class: x.y.XYZClass
Class-Path: vn.jar pn.jar
содержимое run.bat:
java -cp .;../lib/application.jar x.y.XYZClass -Dconfig.properties.name=../config.properties -Dlog4j.configuration=../log4j.xml
Я выполняю run.batиз командной строки из папки bin.
XYZClass main () выполняет следующие действия: загружает log4j.xml и config.properties и выполняет другие действия.