新版Eclipse Tomcat插件启动旧Tomcat遇Java版本兼容及日志问题
问题1:JRE 1.6启动Tomcat报错原因及解决办法
报错java.lang.UnsupportedClassVersionError: org/eclipse/jdt/launching/internal/javaagent/Premain : Unsupported major.minor version 51.0的核心原因:
- Eclipse 2022-12(4.26.0)基于Java 17/18开发,其内置的JDT启动代理类
org.eclipse.jdt.launching.internal.javaagent.Premain是用Java 7(对应版本号51.0)编译的。 - 当你把Eclipse默认JRE切换为1.6时,Eclipse会用JRE1.6加载这个代理类,但JRE1.6无法识别Java 7编译的字节码,因此抛出版本不兼容错误。
- 批处理直接启动Tomcat时,没有Eclipse的JDT代理介入,纯用JRE1.6运行Tomcat自身代码,所以能正常启动。
解决办法:
- 不要修改Eclipse全局默认JRE,单独给Tomcat启动配置指定JRE1.6:
- 打开
Run Configurations,找到你的Tomcat启动项 - 切换到
JRE标签页,在Runtime JRE下拉菜单选已配置好的JDK1.6.0_07 - 保存配置后重新启动Tomcat
- 打开
- 若必须用JRE1.6作为Eclipse默认JRE,建议更换适配JDK1.6的旧版Eclipse,比如Eclipse Indigo(3.7)或Helios(3.6),这些版本的JDT组件基于Java 6编译,不会出现版本冲突。
问题2:Eclipse插件启动Tomcat的日志去向
Eclipse插件启动Tomcat时,默认会把Tomcat的控制台输出重定向到Eclipse的Console视图,而非写入Tomcat的logs目录。若需让日志写入文件:
- 打开
Run Configurations,找到你的Tomcat启动项 - 切换到
Arguments标签页,在VM arguments中添加:
确保Tomcat使用自身的日志配置文件-Djava.util.logging.config.file=C:\java\tomcat-6.0.14\conf\logging.properties - 也可在Console视图右键点击,选择
Export将当前控制台日志保存到本地文件。
内容的提问来源于stack exchange,提问作者Martin Schulze
相关产品推荐
相关产品推荐

