JDK7でメッセージを英語にする(-J-Duser.language=en)

「env LC_ALL=en javacってやれば英語になるよ」という趣旨のブログがたくさんヒットするが、それをやっても変化がない。確かに昔はLC_ALL=enでできたような記憶があるけどなぁ〜と思ったら、どうもJDK7からOSの言語設定を見るとかいう余計なおせっかいをしてくれるようになったようだ。英語でのメッセージ出力を強制するには、javac -J-Duser.language=enやjava -Duser.language=enと指定すれば良いようだ。

$ javac Nothing.java
javac: ????????????: Nothing.java
????: javac <options> <source files>
????????????????????-help??????

$ javac -J-Duser.language=en Nothing.java
javac: file not found: Nothing.java
Usage: javac <options> <source files>
use -help for a list of possible options

ref. java - Forcing the use of english in JDK7 tools - Stack Overflow

どうせおせっかいするならコンソールのエンコーディングを見て化けないように出しれくれればいいのに。