T2Framework 0.3.1がリリースされたのだが

http://d.hatena.ne.jp/shot6/20080912#1221196454

実行可能なお手軽WARファイルはこちらからどうぞ.

http://t-2.googlecode.com/files/t2-employee-0.0.1.war

http://t-2.googlecode.com/files/t2-samples-0.0.1.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とか設定してる人なんていまどきいないと思ってるので、ちょっとびびった。まぁフルパスでJDKJRE起動すればいいだけですが。

こんな感じで。

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に移行するんですかね。