linux 使用alternatives 切换Java版本

 xception in thread "main" java.lang.UnsupportedClassVersionError: M : Unsupported major.minor version

在linux上编译的java程序,在运行的时候报这个错误。

经过查找原来是javac的版本和java的版本不一致导致的,

因为我机器上安装了系统自带的java-1.5.0-gcj和1.7.0的openjdk,另外我还自己安装了1.8.0的Oracle 官方的jdk

导致编译器的版本和运行器的版本不一致。


解决这个问题的方法是使用alternatives 切换默认的java命令

这个工具的大概原理是

在/usr/bin目录下创建一个符号链接,指向/etc/alternatives/ 下的的文件,而该文件依然是一个符号链接,举个栗子

[root@node1 mec]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 4月  16 16:06 /usr/bin/java -> /etc/alternatives/java

[root@node1 mec]# ll  /etc/alternatives/java
lrwxrwxrwx. 1 root root 26 4月  16 16:06 /etc/alternatives/java -> /usr/java/default/bin/java


/etc/alternatives/java会指向最终的可执行文件,如果你有3个版本的java

就需要运行

[root@node1 mec]# alternatives --config java

共有 3 个程序提供“java”。

  选择    命令
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*  2           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
 + 3           /usr/java/default/bin/java

按 Enter 来保存当前选择[+],或键入选择号码:
然后选择你想要选择的选项保存就好了


如果这个列表里面没有你想要的而且已经安装了的程序,就需要添加 命令为

alternatives --install /usr/bin/java java /usr/java/default/bin/java 500

这个命令实际操作的是 /var/lib/alternatives目录下对应的文件

alternatives的安装删除显示等操作都是通过读取和修改这个目录下的文件实现的,而且是文本文件,感兴趣的可以取阅读一下


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值