ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

太陽と日蝕のswitchの違い

2008-07-07 23:55:00 | PG(Java)

enumのswitchの実装JDK1.5とJDK1.6で異なると思ってたら、これは大きな間違いだった(汗)

正しくはコンパイラーの実装の違い、すなわちSunのjavacとEclipse3.2の違いだった。
それぞれの中では、JDK1.5と1.6での差は無いようだ。

今までEclipseもSunの(すなわちインストールされた)javacを使ってコンパイルしてるのかと思ってたけど、そうじゃないんだな。
そういえば、Eclipseの『ビルドパスの設定』ではJRE(実行環境)のバージョン、すなわちJREの場所(ディレクトリー)は指定できるけど、『Javaコンパイラーの設定』では準拠するバージョンを指定するだけで、JDK(javac)の場所は指定できないなぁ。

よく考えてみれば、SuppressWarningsアノテーションで指定できる警告の種類がEclipseSunのjavacで異なるのも、コンパイラーの実体が違うせいなんだなー。
(って改めて見たら、自分で自分のページにそう書いてるじゃん!(爆))

ということは、Eclipseがコンパイルしてclassファイルを置くディレクトリーに、別途Antのjavacタスクを使ってコンパイルして上書きするのは良くないってことかー!?
(普通はそんなことしないだろうけど、ファイル数が多すぎてEclipseでのコンパイルでOutOfMemoryErrorが発生するのを回避する為に、分割コンパイルするようにbuild.xmlを書いたんだよなー。もっとも、この時はEclipseの自動コンパイルはオフにしてあったので、Eclipseがコンパイルすることは無いからセーフか。あぶねー)

(さすがにAntのjavacタスクはSunのjavacを使ってるよな…?)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする