Java FAQ -- "Exception in thread 'main' java.lang.UnsupportedClassVersionError:"

OS:Ubuntu

最近重新学习Java,写了一段很小的程序,如下:

public class Hello{
public static void main(String args[]){
System.out.println(“hello”);
}
}
  当javac Hello.java, java Hello后发现出现了下面的提示错误:

Exception in thread “main” java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader 1. r u n ( U R L C l a s s L o a d e r . j a v a : 212 ) a t j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( N a t i v e M e t h o d ) a t j a v a . n e t . U R L C l a s s L o a d e r . f i n d C l a s s ( U R L C l a s s L o a d e r . j a v a : 205 ) a t j a v a . l a n g . C l a s s L o a d e r . l o a d C l a s s ( C l a s s L o a d e r . j a v a : 323 ) a t s u n . m i s c . L a u n c h e r 1.run(URLClassLoader.java:212) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:323) at sun.misc.Launcher 1.run(URLClassLoader.java:212)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:205)atjava.lang.ClassLoader.loadClass(ClassLoader.java:323)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: Hello. Program will exit.

后来通过两条命令明白了出现这一问题的原因:

lxw@19:08:51:~$ which javac
/home/lxw/Downloads/jdk1.8.0/bin//javac
lxw@19:08:54:~$ which java
/usr/bin/java
  这时我又查看了下PATH的值:

lxw@19:12:11:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/lxw/Downloads/jdk1.8.0/bin/  
  出现上述错误的原因是:我在PATH中添加了jdk的路径,但该路径(/home/lxw/Downloads/jdk1.8.0/bin/)在/usr/bin/java的后面,

所以执行java命令时,执行的是/usr/bin/java,而该目录下的java版本和我在PATH中设定的jdk路径下的javac的版本是不一样的,所

以才出现了上面的错误。

所以可以采用下面的方法解决:

在.bashrc中添加 PATH=jdk路径/bin: P A T H , 注 意 不 是 P A T H = {PATH} ,注意不是PATH= PATHPATH={PATH}:jdk路径/bin。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值