2016年4月3日日曜日

Raspbianのjavaを切り替える

Raspberry Piでjavaファイルを実行しようとしたら以下のエラーがでた。

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/javascript/jscomp/CommandLineRunner : Unsupported major.minor version 51.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.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$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: com.google.javascript.jscomp.CommandLineRunner. Program will exit.

javaのバージョンを確認したら1.6.0_38で古い。

$ java -version
java version "1.6.0_38"

最新バージョンをインストールしようとしたが、実行されるコマンドを確認すると、Open JDKとOracle JDKがインストールされていて、現在はOpen JDKが使用される設定になっている。

$ sudo update-alternatives --config java

 選択肢    パス                                               優先度  状態
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk-armhf/jre/bin/java        1057      自動モード
  1            /usr/lib/jvm/java-6-openjdk-armhf/jre/bin/java        1057      手動モード
  2            /usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt/jre/bin/java   318       手動モード

Oracle JDKを使用するように切り替えてjavaのバージョンを確認すると 1.8.0になった。

$ java -version
java version "1.8.0"
 
これで javaファイルを実行してもエラーが出なくなった。

0 件のコメント:

コメントを投稿