Linux
無法啟動 tomcat6:Java 錯誤(執行緒“main”中的異常)
在 CentOS 6.3 上安裝 tomcat6 後,我無法啟動 tomcat6 伺服器。
root@host [/var/log/tomcat6]# service tomcat6 start Starting tomcat6: [ OK ]
雖然它說
OK
,我無法訪問http://mydomain.com:8080
。catalina.out
Exception in thread "main" java.lang.NullPointerException at java.lang.VMClassLoader.defineClass(libgcj.so.10) at java.lang.ClassLoader.defineClass(libgcj.so.10) at java.security.SecureClassLoader.defineClass(libgcj.so.10) at java.net.URLClassLoader.findClass(libgcj.so.10) at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.10) at java.lang.ClassLoader.loadClass(libgcj.so.10) at java.lang.ClassLoader.loadClass(libgcj.so.10) at gnu.java.lang.MainThread.run(libgcj.so.10)
Tomcat6 是使用 yum 安裝的:
yum -y install java tomcat6 tomcat6-webapps tomcat6-admin-webapps
當我試圖找到版本時
tomcat6 version
::Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.catalina.util.ServerInfo at gnu.java.lang.MainThread.run(libgcj.so.10) Caused by: java.lang.ClassNotFoundException: org.apache.catalina.util.ServerInfo not found in gnu.gcj.runtime.SystemClassLoader{urls=[], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}} at java.net.URLClassLoader.findClass(libgcj.so.10) at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.10) at java.lang.ClassLoader.loadClass(libgcj.so.10) at java.lang.ClassLoader.loadClass(libgcj.so.10) at gnu.java.lang.MainThread.run(libgcj.so.10)
知道我應該怎麼做嗎?謝謝!
根據堆棧跟踪行末尾的“libgcj.so”字元串,您似乎正在嘗試使用 GNU Compiler for Java 執行 Tomcat。GCJ 不是一個完整的 Java 執行時環境,很可能是您的問題的根源。如果您的系統上沒有安裝真正的 JRE 或 JDK,或者未設置 JRE_HOME(或 JAVA_HOME)變數,則可能會發生這種情況。嘗試安裝真正的 JRE,如 OpenJDK 或 Sun/Oracle 的 JRE/JDK。