java.lang.NoClassDefFoundError beim starten von tomcat 7 aus Ant
Mein Ziel ist, starten Sie tomcat mit Hilfe von Ant. Hier ist mein Skript:
<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>
Nach der Skript-Ausführung erhalte ich diese Ausgabe:
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
Ich habe: org.apache.juli.logging.LogFactory
- Klasse präsentiert sich in tomcat-juli.jar
!
Was falsch sein könnte?
- Sind Sie sicher, dass der classpath-Eintrag zeigt auf die richtige Stelle? Haben Sie die jar-aufgeführt, aber Sie haben nicht gezeigt, wo Sie es speichern kann, und Ant möglicherweise nicht auf der Suche in das richtige Verzeichnis für Sie.
- Ich habe die Datei Pfade mit
<echo>
und haben auch versucht, verschiedene Ansätze setzen des classpath in<java>
ant-task. Nichts half.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus irgendeinem seltsamen Gründen tomcat startet nicht in mein system, auch wenn ich starten es von der Kommandozeile aus mit
java -jar
Befehl.Aber ich geschafft zu starten es mit
java -cp "bin\bootstrap.jar;bin\tomcat-juli.jar" org.apache.catalina.startup.Bootstrap
Befehl, ausgeführt vontomcat.home
Verzeichnis.Den code mit ant die nicht die gleiche:
<exec .../>
im<target.../>
.Wenn Sie wollen stick mit catalina, die richtige Methode ist das hinzufügen von \setenv.bat mit Inhalt wie:
Entdeckte ich, dass durch das Lesen catalina.bat. Könnte jemand wollen, um dieses update mit dem richtigen Tomcat-doc
Check-out die
startup.sh
batch-Datei oder shell-Skript von tomcat. Es hat eine Reihe von anderen Dateien außerbootstrap.jar
. überprüfen Siesetclasspath.sh
. Es hat alle Gläser werden in der Klasse Weg.Anderen mehr sauber Ansatz würde sein, rufen
startup.sh
Skript von ant. Diese werden alles tun, was es braucht, um starten Sie Tomcat-Server.bootstrap.jar
,tomcat-juli.jar
,Tomcat7.exe
undTomcat7w.exe
imbin
Verzeichnis