Sublime Text の SublimeLinter で Java の法チェックすると、内部で javac が実行されているので構文チェックが問題ないとそのままコンパイルが完了して .class ファイルが出力されるので Java Compiler API を使って .class を作成しないようにコンパイル処理を作成してみました。
memjc Test.java
でクラスファイルが作成されないため、構文チェックだけが使用できます。
memjc -sourcepath /tmp /tmp/Test.java
一部 javac オプションも使えます。(そのまま Java Compiler API に渡してるだけなので)
memjc -memjc-out Test.java
でクラスファイルも出力されるので
javac Test.java
と同じになります。
java コマンドが jre を参照している場合 Java Compiler API は呼び出せないっぽいので jdk を参照させる必要があるようです。まあ jre で java をコンパイルできないのは当然ですね。