我的目标是使用Ant启动tomcat。这是我的脚本:
<target name="tomcat-start"> <java jar="${tomcat.home}/bin/bootstrap.jar" fork="true" dir="${tomcat.home}"> <classpath> <fileset dir="${tomcat.home}/bin"> <include name="bootstrap.jar"/> <include name="tomcat-juli.jar"/> </fileset> </classpath> <jvmarg value="-Dcatalina.home=${tomcat.home}"/> </java> </target>
执行脚本后,我收到以下输出:
java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:60) Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 1 more Exception in thread "main" Java Result: 1
我已经检查过 :org.apache.juli.logging.LogFactory课堂上有tomcat-juli.jar!
org.apache.juli.logging.LogFactory
tomcat-juli.jar
有什么事吗
由于某些未知的奇怪原因,即使我使用java -jarcommand从命令行启动tomcat,它也无法在我的系统中启动。
java -jar
但是,我 设法 使用java -cp "bin\bootstrap.jar;bin\tomcat-juli.jar" org.apache.catalina.startup.Bootstrap从tomcat.home目录执行的命令 来启动 它。
java -cp "bin\bootstrap.jar;bin\tomcat-juli.jar" org.apache.catalina.startup.Bootstrap
tomcat.home
ant中的代码具有相同的功能:
<exec executable="java" dir="${tomcat.home}"> <arg line="-cp bin\bootstrap.jar;bin\tomcat-juli.jar"/> <arg value="org.apache.catalina.startup.Bootstrap"/> </exec>