从Ant启动tomcat 7时的java.lang.NoClassDefFoundError

ivs*_*tas 7 java ant tomcat

我的目标是使用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>
Run Code Online (Sandbox Code Playgroud)

脚本执行后,我收到此输出:

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
Run Code Online (Sandbox Code Playgroud)

我已经检查过:org.apache.juli.logging.LogFactory上课了tomcat-juli.jar!

可能有什么不对?

ivs*_*tas 6

对于一些未知的奇怪原因,即使我使用java -jar命令从命令行启动它,tomcat也无法在我的系统中启动.

但是,我设法使用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>
Run Code Online (Sandbox Code Playgroud)