[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/jenkins/agent/workspace/pipeline_p-cgs8h-1/src/main/java/com/xx/sea/base/util/EncryptionCoder.java:[9,16] cannot find symbol
symbol: class BASE64Decoder
location: package sun.misc
[ERROR] /home/jenkins/agent/workspace/pipeline_p-cgs8h-1/src/main/java/com/xx/sea/base/util/EncryptionCoder.java:[10,16] cannot find symbol
symbol: class BASE64Encoder
location: package sun.misc
[INFO] 2 errors
util.Base64
import java.util.Base64;
* BASE64解密
* @param key
* @return
* @throws Exception
public static byte[] decryptBASE64(String key) throws Exception {
Base64.Decoder decoder=Base64.getMimeDecoder();
return decoder.decode(key);
* BASE64加密
* @param key
* @return
* @throws Exception
public static String encryptBASE64(byte[] key) throws Exception {
Base64.Encoder encoder=Base64.getMimeEncoder();
return encoder.encodeToString(key);
一、问题描述
最近项目实验发现导入工具程序后项目有错,查看发现
sun
.
misc
.
BASE64
Decoder和
sun
.
misc
.
BASE64
Encode
r不可用,找不到相应的类。
二、原因分析
冲浪后发现JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中删除,也就是1.8版本后的jdk已经不再支持
sun
.
misc
.
BASE64
Decoder和
sun
.
misc
.
BASE64
Encode
r。
这些JAR中可用的类和资源现在以文件中的内部格式存储在lib目录的命名模块中。 可以使用称为jrt的新方案来从运行时映像检索这些类和资源。 依靠这些JAR位置的应用程序将不再工作。
三、解决方案
提供了
sun
.
misc
.
BASE64
Decoder.jar包,自行下载。
[ERROR] cannot find
symbol
[ERROR]
symbol
:
class
RedisUtil
[ERROR]
location
:
package
com.test.util
提示比较明显,没有找到个
symbol
。
直接全局搜索 RedisUtil 字段,发现代码中有写RedisUtil,但是redisUtils实际没有用到。
代码如下:
import com.test.util.RedisUtil;
@Autowired
大家好,我是不才陈某~陈某的知识星球开通了,一个相互学习交流的私密技术圈子,陈某会在星球中定期分享干货,如果你也想和球友一起打卡学习进阶,戳链接加入最近在做 Java8 到 Java17 的迁移工作,前期做了一些准备,但是在升级过程还是有些问题,太emo了,一些信息记录如下,分为几个部分:编译相关参数迁移相关运行相关前人栽树后人乘凉,有需要升级的可以参考一下,避免踩坑。。。编译相关JEP 320在...
在Java领域,有广为人知的日志框架,slf4j、log4j等,这些框架提供了统一的编程接口,让用户可以通过简单的配置实现日志输出的个性化配置,比如日志tag、级别(info、debug等)、上下文(线程id、行号、时间等),在JVM内部之前一直缺乏这样的规范,于是出来了UnifiedLogging,实现了日志格式的大一统,这就是我们接下来要介绍的重点。我们接触最多的是gc的日志,在java8中,我们配置gc日志的参数是-Xloggc。java-Xlogxxx。......
在使用
sun
.
misc
.
BASE64
Encode
r时报错如下:Access restriction: The type
BASE64
Encode
r is not accessible due to restriction on required library C:\jdk1.7.0_79\jre\lib\rt.jar
原因与替代方案查了下资料,这是因为
BASE64
Encode
r/
BASE64
Dec
原因分析:
sun
.
misc
.
BASE64
Encode
r等类不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。但是在eclipse中直接使用却报错。在jdk1.9中就不存在了,但新版Eclipse(本人2022.2版)本身要求的jre较高,但项目使用的1.8版本,所以修改eclipse.ini会使软件打不开,但用它本身的就会版本比较高。
解决方案:
提示:本人使用网络上普遍的添加access/**的方法(即解
在 Java 领域,有广为人知的日志框架,slf4j、log4j 等,这些框架提供了统一的编程接口,让用户可以通过简单的配置实现日志输出的个性化配置,比如日志 tag、级别(info、debug 等)、上下文(线程 id、行号、时间等),在 JVM 内部之前一直缺乏这样的规范,于是出来了 Unified Logging,实现了日志格式的大一统,这就是我们接下来要介绍的重点Unified Logging。
我们接触最多的是 gc 的日志,在 java8 中,我们配置 gc 日志的参数是-Xloggc:/