我开始先把原来的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 链接过去就可以了。。
运行没有问题。。