从 Ant 启动 tomcat 7 时出现 java.lang.NoClassDefFoundError

标签 java tomcat ant

我的目标是使用 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 中!

有什么问题吗?

最佳答案

由于某些未知的奇怪原因,即使我使用 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>

关于从 Ant 启动 tomcat 7 时出现 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20536532/

相关文章:

svn - 颠覆: Automatically find newest stable branch on a build server

java - 编译 java 文件时遇到问题(ANT 和 XML 相关)

java - 如果 ValueOF 或 Integer.parseInt 不起作用,如何在 Java 中划分两个字符串?

java - 如何在 ubuntu 启动时启动 java (.jar) 应用程序

java - 什么是用于构建服务器应用程序的好的java框架?

java - 在 Mac OSX 上运行项目时出现 404 错误

maven - IntelliJ Tomcat部署大资源

jsp - javax.命名.NamingException : Could not create resource factory instance

java - Ant javac任务无法访问类

java - 使用 xml 实体监听器时未 Autowiring 的依赖项