T2Framework 0.3.1がリリースされたのだが
http://d.hatena.ne.jp/shot6/20080912#1221196454
実行可能なお手軽WARファイルはこちらからどうぞ.
これが動かない。
Status Code: 500 Exception: Stacktrace: org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 7 in the generated java file 2008/09/13 0:07:36 org.apache.jasper.compiler.AntCompiler generateClass 致命的: Javac exception Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath.
どうやらJDKを設定してあげないといけないようだ。個人的にはぜんぜんお手軽実行ではないらしい。JDKのHOMEとか設定してる人なんていまどきいないと思ってるので、ちょっとびびった。まぁフルパスでJDKのJRE起動すればいいだけですが。
こんな感じで。
C:\Documents and Settings\shin>"C:\Program Files\Java\jdk1.6.0_06\bin\java.exe" -jar "C:\Documents and Settings\shin\デスクトップ\t2-samples-0.0.1.war"
IDE全盛の今の時代だとプロジェクトのパッケージのほうがお手軽ですかねぇ。
あとcom.sunパッケージということはSUNのJDKに依存しているということでしょうか。
とりあえず直接コンパイルするクラスをいじるよりはJavaSE6のツールクラスを使って処理したほうがいいような気も。そこまでできるかどうかしらないけど、少なくともコンパイラが有るかどうか等の確認は可能。
public class NewMain { public static void main(String[] args) { System.out.println(ToolProvider.getSystemJavaCompiler()); } }
これで現在の環境でコンパイルが可能かどうかはわかります。戻り値はjavax.tools JavaCompilerインターフェース。
そういやこのへんもJavaSE6で追加された命令ですよね。もうすぐJavaSE6が出てから2年たつので普通に存在するものだと思っていました。ほかにもjavax.annotation.processingパッケージなどツールをサポートする命令等がかなり充実しているのでそういうのをサポートしていってほしいですね。T2は6以上が必須なわけだし。これらのAPIを使うと環境に依存することが多少は減りそうです。
ちなみにJ2SE5.0がでてちょうど4年になります。ダウンロードサイトにいくとわかりますが、5.0のダウンロード先ではもう警告が出ています。もうすぐサポートが切れるからです。有料ならサポートはありますが・・・。
一方、いまだに5.0にすら移行し切れていないプロダクトが大量にあると思います。どうすんですかね。5.0とばして6に移行するんですかね。