【发布时间】:2013-10-31 03:52:56
【问题描述】:
我有一个项目,比如 A 和一个包含在其构建路径中的 jar,比如 a。 jar 包含一个 main 方法,其类名在 Manifest 文件中提供。
从 A 的 build.xml 我使用如下代码调用 jar 文件:
<java jar="lib/a.jar" fork="true">
<arg value="test param" />
</java>
清单文件指向:myframework.Startup
当我尝试运行 ant 文件时,我得到:
[java] java.lang.NoClassDefFoundError: org/apache/log4j/Logger
[java] at myframework.Startup.<clinit>(Startup.java:40)
[java] Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
[java] at java.net.URLClassLoader$1.run(Unknown Source)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
[java] ... 1 more
[java] Could not find the main class: myframework.Startup. Program will exit.
[java] Exception in thread "main"
[java] Java Result: 1
但是当我直接从我的编辑器 Eclipse 运行 jar 文件时,即 右键单击 a.jar-> 运行方式 -> Java 应用程序 它运行良好。
请帮忙。
【问题讨论】:
-
你的类路径中没有 log4j。
-
我在顶部的构建文件中有 log4j 和运行我的项目所需的所有其他 jar。
标签: java eclipse ant build jar