はじめに 知っている人にはよく知られていることですが、EclipseのJava開発環境、JDTがJavaソースのコンパイルに使っているコンパイラは、OracleのJDKなどとは違い、Eclipseが独自実装しているコンパイラ ECJ (Eclipse Compiler for Java)です。 ECJとOracle JDK(OpenJDK)のjavacと何が違うのかというと、 コンパイラの許容ルールが異なる。(おそらくOracle JDKより緩いケースが多そう) これのせいでEclipseでコンパイルできたとしても、javacでコンパイルできないソースが出るので、そういうのやめたい人はきちんとJenkinsとかで常時チェックかかるようにしましょう。 コンパイルが一部失敗しても成功したclassファイルは生成される。 それどころか失敗したクラスでさえ仮のclassファイルを生成させることがで