arison.jp arison.jp blog - 現在をたのしく、未来をたのしむ。日常の思い出兼備忘録。

Unsupported major.minor version 51.0

 Unsupported major.minor version 51.0
以下のエラーが出て実行できない。
Exception in thread “main” java.lang.UnsupportedClassVersionError:
jp/arison/Hoge : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)

        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: jp.arison.Hoge.  Program will exit.
JDKが1.7のところJREが1.6だったため起こるエラー。
version 51.0 ってのはJDKが1.7。
詳細は
http://www.ne.jp/asahi/hishidama/home/tech/java/application.html

コンパイルは1.7だけど、実行が1.6だったから、新しいものを古いもんで動かせない。
誤解を承知で言うと、明日の自分が知っていることを、昔の自分に聞いてもわからないって感じだろうか。
(A)JRE1.6で動くようにコンパイルしなおすか。
(B)JRE1.7にあげて実行するか。
(B)案が手っ取り早いんだけど、既存に影響があるかもしれないので(B)案で。
コンパイルするときに、antを使ってbuildしていたんだけど
antが勝手に、JDK1.7に入っていたtool.jarとrt.jarを用いていたので
JRE1.7でしか動かなくなっていた。JRE1.6で動かしたから今回のエラーが出たわけ。
tools.jar
javac.exeとかコンパイル時に使用されるjavaで書かれたツール群。javacは実はjavaで書かれている。
rt.jar
ランタイムクラスライブラリ。java.lang.StringなどのJava標準クラス。
tools.jarだけJRE1.6用に差し替えてコンパイルしたら、もっといいtools.jar使えよって警告でた。
rt.jarも併せて指定しないといけないのかな。
で、さらに言えば、build.xmlにも指定する箇所があった。
target
source
bootclasspath

で、jarを作ったら、動作しました。
【参考】
http://www26.atwiki.jp/ochamemo/pages/21.html
http://www.javaroad.jp/bbs/answer.jsp?q_id=2012120512023815

About arison

大都会岡山の南部にある玉野市生まれ。 大都会岡山のIT会社(目標は大都会No.1)でコンピュータとお客を相手に日夜格闘中。 関東出張中はグルメブログ。 基本的に遊び人のおっさん。 ライフハックとガンダム好き。ギガフロート玉野を浸透中。

22. 8月 2013 by arison
Categories: プログラミング | Tags: | Leave a comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください