![在 OSX 上安装新的 tomcat 时启动出现故障](https://linux22.com/image/516264/%E5%9C%A8%20OSX%20%E4%B8%8A%E5%AE%89%E8%A3%85%E6%96%B0%E7%9A%84%20tomcat%20%E6%97%B6%E5%90%AF%E5%8A%A8%E5%87%BA%E7%8E%B0%E6%95%85%E9%9A%9C.png)
我在之前没有安装 Tomcat6 的 OS X 机器上完成了 Tomcat6 的全新安装。它在其他方面表现得有点奇怪,但目前的问题是它根本无法启动。在运行 startup.sh 时,catalina.out 日志收集到以下错误:
线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/catalina/startup/Bootstrap 原因:java.lang.ClassNotFoundException:org.apache.catalina.startup.Bootstrap 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248)
此次安装中还发现了一些奇怪的现象:
- bin 目录中的 .sh 脚本没有执行权限,必须手动进行 chmodded。
- 未创建日志文件夹,导致先前的脚本崩溃。在我手动创建日志文件夹后,启动脚本在失败之前遇到了这个新错误。
- 运行 bin 文件夹中的其他脚本会生成类似的涉及 NoClassDefFoundError 的错误消息。
- Bootstrap.java 确实在正确的位置,尽管 Bootstrap.class 不在同一文件夹中。就此而言,如果 tomcat 的无数类文件中的任何一个应该已经从其 .java 文件生成,我还没有看到它。
答案1
您的机器上运行的是哪个版本的 Java?从第一眼看到这个命令,我会说您可能正在运行 Java1.5,而这个版本的 Tomcat 需要 Java1.6,这种情况发生过几次。
答案2
我一直没有发现它是什么,但是从预编译的二进制文件安装而不是从头开始构建可以修复它。