0
我的意图是给一个批处理文件,它执行一个Java应用程序/工具的jar到不懂java的功能分析团队。当我执行批处理文件时,出现以下错误。 任何帮助是高度赞赏。批处理文件执行的jar错误 - 找不到主类
如何调试,以确定问题是否在main()中负责加载log4j和配置文件?
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
我从bin文件夹的命令行执行run.bat。
XYZClass main()执行以下操作: 加载log4j.xml和config.properties并执行其他操作。