cannot find symbol[ERROR] package sun.misc

本文介绍了在Jenkins升级后遇到的由于JDK版本变更导致的项目部署错误问题及解决方案。通过调整Jenkins中项目的JDK版本配置,成功解决了因使用较高版本JDK而缺失某些类的问题。

最近进行了Jenkins的升级,JDK最低要求版本是 jdk11。升级完成后,部署项目出现报错

通过报错信息,肯定是缺包了,经检查私服上没有这个包,这个包来自JDK。原来这个类来自jdk中的 rt.jar包,只在jdk8和以下版本才有。

知道了问题就好解决了,之前项目启动时,都是用的系统默认jdk版本,现在默认版本升级了,就用不了了。

解决方法也很简单,jenkins构建构项目前,先修改项目配置中的JDK版本即可:

 

 切换jdk后,启动项目就没问题了。

[root@yfw ~]# cd /opt/openfire [root@yfw openfire]# javap -verbose /opt/openfire/plugins/restapi/classes/com/example/restapi/RestApiPlugin.class | grep "major version" major version: 55 [root@yfw openfire]# cd /opt/openfire/plugins/restapi [root@yfw restapi]# rm -rf classes/* [root@yfw restapi]# cp -r /root/openfire-plugins/restapi-plugin/target/classes/* classes/ [root@yfw restapi]# cd /opt/openfire/plugins/restapi/classes [root@yfw classes]# [root@yfw classes]# # 使用 openfire 用户身份 + 完整类路径尝试加载类 [root@yfw classes]# sudo -u openfire java -cp ".:/opt/openfire/lib/*" com.example.restapi.RestApiPlugin Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: com/example/restapi/RestApiPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601) [root@yfw classes]# # 编译时指定类路径 [root@yfw classes]# javac -d target/classes \ > -cp "/opt/openfire/lib/*" \ > src/main/java/com/example/restapi/RestApiPlugin.java javac: file not found: src/main/java/com/example/restapi/RestApiPlugin.java Usage: javac <options> <source files> use -help for a list of possible options [root@yfw classes]# package com.example.restapi; -bash: package: command not found [root@yfw classes]# [root@yfw classes]# import org.jivesoftware.openfire.plugin.Plugin; import: unable to open X server `' @ error/import.c/ImportImageCommand/347. [root@yfw classes]# import org.jivesoftware.openfire.plugin.PluginManager; import: unable to open X server `' @ error/import.c/ImportImageCommand/347. [root@yfw classes]# import java.io.File; import: unable to open X server `' @ error/import.c/ImportImageCommand/347. [root@yfw classes]# [root@yfw classes]# public class RestApiPlugin implements Plugin { -bash: public: command not found [root@yfw classes]# [root@yfw classes]# public RestApiPlugin() { -bash: syntax error near unexpected token `(' [root@yfw classes]# System.out.println("📞 RestApiPlugin 构造函数调用"); -bash: syntax error near unexpected token `"📞 RestApiPlugin 构造函数调用"' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]# [root@yfw classes]# @Override -bash: @Override: command not found [root@yfw classes]# public void initializePlugin(PluginManager manager, File pluginDirectory) { -bash: syntax error near unexpected token `(' [root@yfw classes]# System.out.println("✅ 插件已初始化: " + pluginDirectory); -bash: syntax error near unexpected token `"✅ 插件已初始化: "' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]# [root@yfw classes]# @Override -bash: @Override: command not found [root@yfw classes]# public void destroyPlugin() { -bash: syntax error near unexpected token `(' [root@yfw classes]# System.out.println("🛑 插件已卸载"); -bash: syntax error near unexpected token `"🛑 插件已卸载"' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]#
最新发布
10-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值