刚接手公司的一个老项目,用的是比较老的框架(SSM
),这怎么可能会慌,毕竟大学期间就是用的 SSM
,然后通过 IDEA
添加完 Tomcat
,然后开始跑,结果就尴尬了。。。 直接报错:
Error:(16, 42) java: package com.sun.org.apache.regexp.internal does not exist
凭借敏锐的眼光发现,这肯定是 JDK
版本的问题,毕竟是 com.sun
的包。然后问了问同事 JDK
的版本,他的是 jdk1.8.0_212
,他的目录里面竟然有 com.sun.org.apache.regexp
这个包。
而自己的是 jdk1.8.0_251
,显然高了好几个版本,没有相应的包结构。 然后我就老老实实去 Oracle 官网下载 JDK,网速可是真慢,最后从 Github 上找了别人上传的,然后重新配置 JAVA_HOME
指向 jdk1.8.0_212
,启动收工。
【补充】虽然能用了,但是也了解了一下 com.sun.*
:
sun.*
主要用于早期的Java API
,一些老项目中还在用;- 现在的话大多数的
sun.* API
都已经被删除,并升级为Oracle
官方的javax.*
或重命名为com.sun.*
。 - 在使用
com.sun.*
的时候有个原则:不要使用JDK 内部
或 标记为弃用/删除
的API
,因为内部的 API 是不稳定的,会随意进行改动而不另行通知,除非特殊情况,一般不推荐程序中使用com.sun.*
与sun.*
中的类。
【建议】能用第三放开源的包就用,少踩 Sun 包下面的坑,毕竟头发还想要呀。
jdk1.8.0_212 Github
下载地址:jdk1.8.0_212 全平台下载