javacコマンドでは、-targetを使うことによって対象バージョンを指定することが出来る。
でもコンパイル時に使われるライブラリーは、それとは無関係にjavacのバージョンに対応したライブラリー。
なので、System.out.printf()を使いつつバージョン1.4向けにコンパイルできる。
(-targetを1.4にするなら-sourceも1.4以下にしないといけないので、可変長引数はそのままは使えないのだが…)
でもJRE1.4のjavaコマンドでは(JRE1.4のライブラリーに)printf()メソッドが存在しないので、実行できない(爆)
JRE1.5以降のjavaコマンドでは実行できるが…わざわざ-target 1.4にしてる意味が無い!