我有一个用Eclipse完成的Java项目,我有一个ANT命令,如果从Eclipse的ANT工具中运行,它可以正常工作,但如果我尝试从Linux命令行运行ANT命令,它就不起作用。
为什么会这样?我在Eclipse和命令行中都有几个ANT命令。
命令是这个:
<target name="run.jmsserver">
<java classname="JMSInternationalEventServer/JMSInternationalEventServer" classpath="${classpath}" fork="true">
</java>
</target>
以前定义了classpath:
<property name="classpath" location="bin:EventReservationCore/bin:EventReservationCore/db:EventReservationCore/lib/*:EventReservationCore/lib/util_iso2.jar:EventReservationCore/lib/sqlitejdbc-v056.jar:AuthorizationRMI/lib/AuthorizationService.jar"/>
我得到的错误是:
[java] Exception in thread "main" java.lang.NoClassDefFoundError: javax/jms/JMSException
[java] Caused by: java.lang.ClassNotFoundException: javax.jms.JMSException
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[java] Could not find the main class: JMSInternationalEventServer.JMSInternationalEventServer. Program will exit.
[java] Java Result: 1
非常感谢。
答案 0 :(得分:1)
感谢Jason Braucht的帮助,问题是EventReservationCore/lib/*
无效,即使我已经读过它应该可以在Linux上运行。