我想在服务器jdk
上升级我的CentOS
服务器,经过一些简单的搜索后我找到了一些解决方案。
从这个链接,您可以看到说明很简单。
从 rpm 包或源代码安装您选择的 jdk
可能会选择一些替代方案
检查是否安装了新版本 (
java -version
)
上面的前两个步骤,我很容易完成,但在检查版本步骤中我收到此错误:
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
我还检查过:
alternatives --config java
和符号链接。
我还尝试使用which
命令来找出 java 实际运行的内容,这是链接方向。
/usr/bin/java -> /etc/alternatives/java -> /usr/java/jdk-1.8.0_40/bin/java
奇怪的是,当我跑步时:
/usr/bin/java -version
它没问题,它返回版本,但是当我在java
没有任何前缀的情况下运行时,我收到了该错误。
答案1
问题出在系统变量上CLASSPATH
。
并且它必须以某种方式导出,例如/etc/bashrc
文件,因为 jdk 需要知道类和库的传递来加载它的模块。
就我而言,我坐着CLASSPATH=/usr/java/jdk1.8.0_40/lib
。