JAVAWEB开发Myeclipse 项目中报“无法解析类型 java.io.ObjectInputStream,从必需的 .class 文件间接引用了它”解决办法

JAVAWEB开发Myeclipse 项目中报“无法解析类型 java.io.ObjectInputStream,从必需的 .class 文件间接引用了它”解决办法

触发场景

背景:
第一次写maven项目
jdk:1.8
tomcat:7
目的:
通过maven管理jar包,编译部署项目(maven clean.maven install 后),完成struts2的http请求跳转jsp页面,查看jsp-api的申明是否起效。
(http请求: http://localhost:8080/maven-first/findById.action?custId=12)
报错1:无法解析类型 java.io.ObjectInputStream,从必需的 .class 文件间接引用了它
报错2:Exception in thread “main” java.lang.UnsupportedClassVersionError: org/apache

报错1的处理

一直认为是elipse默认的jdk1.8.00_xxx(版本号)需要和项目中的 JRE System Library javaSE-1.8版本保持一致
心中的不确定:两者是否要求是同一个版本的jdk,如果不是,那么是不是就是报错的原因?
实际:两者就是同一个1.8版本,与版本号无关

查阅得知:
报错1的原因
有可能是jdk版本过高,在项目右键构建路径–> 配置构建路径 ,在库(L )列表中把“JRE 系统库JDK1.8 ” 点击“除去”,然后再点击“添加库(A)”–> 选择“JRE系统库" —> 下一步,在备用JRE中 选择sun jdk1.6,点击完成。把高版本JDK1.8 替换成低版本JDK1.6,就解决了。
处理:将elipse的绑定jdk1.8更改为1.6,且保证项目的jdk也是1.6
这次连 运行 maven clean都报错了,出现了 报错2 Exception in thread “main” java.lang.UnsupportedClassVersionError: org/apache

报错2的原因

由于1.6的jdk版本过低,与tomcat6貌似不兼容(执行:mvn tomcat:run 默认是6),试一试jdk1.7是否可行,将elipse的绑定jdk1.6更改为1.7,且保证项目的jdk也是1.7,成功maven clean 和install,且发送action请求,页面错误1不再出现。
最终处理:项目的jdk版本为1.7,elipse绑定版本1.7去运行
猜想:由于elipse配置的jdk为jdk1.8.00_xxx(版本号),项目中的 JRE System Library还可以向下兼容为 JRE System Library javaSE-1.7,那么,将elipse绑定版本1.8, 且项目向下兼容为1.7去运行是否可行?
结果:但是这个1.7实际就是不兼容的1.8

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值