UbuntuでJava使おうと思ったらversionでひっかかった
問題
今日,Ubuntu 12.04上でJavaを実行しようとしたら,詰まりました…
$ javac Hoge.java $ java Hoge
とすると,なんかエラーが.
Exception in thread "main" java.lang.UnsupportedClassVersionError: Hoge : 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: Hoge. Program will exit.
原因
理由は簡単,javaとjavacのversionが違っていました.
$ java -version java version "1.6.0_27" OpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-0ubuntu0.12.04.1) OpenJDK Server VM (build 20.0-b12, mixed mode) $ javac -version javac 1.7.0_21
解決策
解決策も簡単,versionを揃えます.
$ sudo update-alternatives --config java
モードを選択します.
今回は,最新のものを選択すればいけました.
/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java