JavaTM Web Start の誇大広告2008年09月16日 18時34分45秒

Java アプリケーションをコンピュータの初心者でも使えるような、なるべく簡単な起動方法を探していた。

そこで見つかったのがJavaTM Web Start の機能だが、これの概要は誇大だろう。ほぼ、全文引用する。

概要

Java Web Start は、アプリケーション配備用のテクノロジであり、Web ブラウザからシングルクリックするだけでフル機能装備のアプリケーションを起動することを可能にします。この機能を利用すれば、表計算プログラムやインターネットチャットクライアントなどのアプリケーションを、複雑なインストール手順を踏まずに、簡単にダウンロードして起動できるようになります。

Java Web Start には、Java 2 プラットフォームのセキュリティ機能が組み込まれているため、データやファイルの整合性が損なわれることはありません。さらに、Java Web Start テクノロジを使うと、最新の Java 2 テクノロジを任意のブラウザで利用できます。

Java Web Start では、Web ページ上のリンクをクリックするだけで、アプリケーションを起動できます。そのアプリケーションがコンピュータに存在しない場合は、Java Web Start により、必要なすべてのファイルが自動的にダウンロードされます。ダウンロード後は、ファイルがコンピュータ上にキャッシュされるため、デスクトップ上のアイコンかブラウザ上のリンクを使って、必要なときにいつでもアプリケーションを起動できるようになります。また、どの方法でアプリケーションを起動しても、常に最新バージョンのアプリケーションが起動されます。

自動で必要なファイルをダウンロードして、起動できるのであれば便利だと思い試してみた。そうすると起動しない。セキュリティ例外だと言われた。起動したプログラムはファイルのビューアだった。エラーメッセージを見ると、ディスクへのアクセス権はない故を示している。

実は、こちらの FAQ に重要な事が、こっそり書かれている。こちらも、その一文を引用する。

Java Web Start のセキュリティ保護はどのように行われているのですか ?

セキュリティは、Java Web Start を設計する上で考慮すべき重要なポイントの 1 つです。Java Web Start では、すべてのアプリケーションがデフォルトで安全な「サンドボックス (sandbox)」で起動されます。

安全なサンドボックス (sandbox) とは何ですか ?

安全なサンドボックスにあるアプリケーションは、ディスクやネットワークなどのローカルのコンピューティングリソースへのアクセスが制限されます。

アプレットの代替だと言っていたので、もしかしたらサンドボックスがあるのではと、疑心暗鬼ではあったが案の定であった。

サンドボックス内で実行されるのは、概要に書かれて然るべき内容だ。このサンドボックスには裏口があって、ローカルディスクへのアクセスが出来るようだが、ローカルディスクへの読み書きを主体とするプログラムでは、手段と目的が変わってしまう。反対に、アプレットの様にローカルへのアクセスを遮断しつつ、実行したいプログラムには、重要な機能だ。