m2

live connect は無くなるのかな

LiveConnect は、JavaScript から Java クラスなどのメソッドを呼べる機能を既存の Java の機能を利用して提供するアプリケーション作成用のインターフェースの名称です。

https://developer.mozilla.org/ja/LiveConnect

他の参考リンク


というわけで JavaScript から Java の機能を使用することができます。
これには 2 種類の方法があって、

  1. 特別な LiveConnect オブジェクトを使する
  2. Java-Plugin (アプレット)の public メソッドから使用する。

があります。

……のですが、前者をサポートするブラウザは Firefox くらいしかありません。
(Opera 10.10 まではこれをサポートしていたのですが、10.50 以降は削除されそうな雰囲気です。Chrome もサポートしてないしね。)
以下は zip ファイルを作成する JavaScript コードですが、これが動くのは Firefox だけだと思われます(Opera10.10には btoa が無いので)。

(function(){
    var data1 = new java.lang.String("aaa").getBytes("utf-8");
    var data2 = new java.lang.String("日本語").getBytes("utf-8");
    var result, bos, zos;
    try {
        bos = new java.io.ByteArrayOutputStream();
        zos = new java.util.zip.ZipOutputStream(bos);
        zos.putNextEntry(new java.util.zip.ZipEntry("aaa.txt"));
        zos.write(data1, 0, data1.length);
        zos.closeEntry();
        zos.putNextEntry(new java.util.zip.ZipEntry("日本語.txt"));
        zos.write(data2, 0, data2.length);
        zos.close();
        var result = bos.toByteArray();
        bos.close();
    }
    finally {
        try { if (bos) bos.close(); } catch (e) {}
        try { if (zos) zos.close(); } catch (e) {}
    }
    var resultStr = String.fromCharCode.apply(String, Array.prototype.map.call(result, function(n){ return n & 0xFF; }));
    window.open('data:application/zip;base64,' + btoa(resultStr), 'aaa.zip');
})()

bookmarklet:

(日本語ファイル名が文字化けする件は検索してみてください。)
(「n & 0xFF」については byte を符号無しとして(unsigned byte として)int と相互に変換するには? - JavaFAQ を参照してください。)


そんな lovelive connect ですが、後者の「Java-Plugin の public メソッドから使用する。」は Google ChromeIE でもサポートされています。簡単なデモページを作りました。

アプレット経由で Java の機能を使うよ

こちらはなくなる気配は無いので、バイナリ的なところは Java に任せちゃえるなと思いました。
(以前は Java Applet といえば多くの場合画面をアニメーションで飾るだけのものだった印象がありますが、すっかり裏方になってしまったなあという感じです。)