ubuntu 升级java7

我开始先把原来的openjdk-6全删除了。。然后用apt-get重新安装了openjdk-7 。。。

以为这就成功了。。可是我写了个HelloWorld。。编译没有问题。。生成了class文件。毫无问题。。但是运行时

使用java Hello就出现:

Exception in thread "main" java.lang.NoClassDefFoundError: virsion:release
Caused by: java.lang.ClassNotFoundException: virsion:release
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

Could not find the main class:Hello. Program will exit.


我试了试修改CLASSPATH。。还是不行。。原来我忽视了第一句。。版本不支持。。

我运行了下:java -version

显示我的jdk还是java6

编译时用的是java7.但执行时是java6.。所以就不识别了。。


我运行下: type java

java is hashed (/usr/bin/java)

因此我在/usr/bin/java。。查看了下它的文件类型,,原来是一个链接。

ll java
lrwxrwxrwx 1 root root 22 2011-10-16 01:21 java -> /etc/alternatives/java*

我查看/etc/alternatives/java 。。又是一个链接。

/etc/alternatives$ll java
lrwxrwxrwx 1 root root 45 2011-10-16 01:42 java -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java*

所以很明显。。虽然jdk升级了。但用的还是java6.。需要自己设置成java7.。

可以用find命令找java。可以发现有个java-7-openjdk-i386/jre/bin/java。。把/etc/alternatives/java 链接过去就可以了。。

运行没有问题。。


原文地址:https://www.cnblogs.com/int32bit/p/3187780.html