有没有终端下写好了的.java编译后不能运行?

主要是在linux下有openjdk和oracle的jdk,由此导致使用安装命令安装时出现

安装了多个版本的问题,如果在软件管理器里面安装jdk的则无此问题

运行是会出想如下错误提示:Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
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.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: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.

上面的意思是对应的.class  的java版本低于编译的javac的版本

网上查看之后,大部分都是说的windows平台下的东西,解决的办法主要是把

相应版本的java的path放在前面,也就是保证java对应这相应的javac


出现这个问题,你可一先查看下java的版本与javac的版本,因该是不一致,

    

   $:   java  -version   

    $: javac  -version

然后,在找到java的路径,进一步分析:

$:which  java  

$:which  javc  大致在 /usr/bin/java 或者/usr/lib/java

然后ls  -al  /**/bin/java  查看详细信息,会发现/**/bin/java只是一个超链接。

由此,可以想出解决的办法,

可以新建一个超链接, 找到java的位置,

locate   */bin/java  可以看到 几个java的准确位置

找到支护就可以对应建立链接了,

#:ln  -s    /usr/lib/jvm/java-7-openjdk-amd64/bin/java    /bin/jj (当然名字可以自己取,但是呀记住)

以后运行.class是就用  

                               jj  **

或者你也可以吧 /**/bin/java 重命名或者删除(不建议)

#:mv  /**/bin/java   /**/bin/jav


(/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java,这也是java的一个路径,遇上面的都可以作为运行.class用)

可以先    /usr/lib/jvm/java-7-openjdk-amd64/bin/java   **应该是可以运行了的

同理,javac可以改也可以不改,

                             基本上解决办法也就是这样。

09-28 03:02