プログラマメモ2 - programmer no memo2

max-heap-sizeとjava-vm-argsの-Xmx、どちらが有効? 2008/11/19

JNLPです。
JNLPファイルに
max-heap-sizeとjava-vm-argsの-Xmxの指定が両方あった場合に、どちらが有効になるか?
max-heap-sizeが有効のようにみえます。

あと、java-vm-argsが正しくない場合JNLPでアプリケーションが起動しなくなるケースがあるようにみえます。

たとえば

java-vm-args="-Xmx64"

ただしくは
java-vm-args="-Xmx64m"

max-heap-sizeを指定しないと起動しませんでした。

ちなみにローカルでjnlp起動時のcodebase指定は、
windowsでは
codebase="file:/C:/tmp"

って感じでうまくいきました。

JNLP extensionという仕組み 2008/08/24

Javaです。Java Web Startについてです。
JNLPから別のJNLPを読み込むための仕組みがあります。
この仕組みを使うと同じライブラリセットをもつアプリケーション同士でライブラリの共有ができます。

<resources>
- 略 -
<extension href="http://aaa/bbb.jnlp"/>
</resources>


呼ばれるJNLPには
<component-desc/>

を指定します。

参考
JNLP Tag Reference

PHP ヘッダー書き換え 2007/12/22

はじめに


PHPを利用して、Java Web Startで起動させるアプリケーションをつくってます。

具体的には、JNLP(PHPで生成している)がコールされた時に、参照できるライブリーを付加したりできるようにしたいのです。

PHPで単純にJNLPの中身を出力するだけではだめだったので、それについてのメモです。

Content-Typeを書き換えたい



mime-typeって指定しないとデフォルトで「text/html」のようですね(もちろんwebサーバーとかの設定なのでしょうが...)

mime-typeの指定がないと、Java Web Startが起動しませんでした。

PHPで例えばPDFや、JNLP、イメージなどを生成する場合、そのmime-typeを指定します。

参考
Deploying Java Web Start Applications (The Java™ Tutorials > Deployment > Java Web Start)
Java Web Start にさわる
ヘッダ書き換えの実用的サンプル - ギャラクシードリンク 宇宙味
PHP: header - Manual

ファイルの先頭に,header関数で、Content-Typeを指定します。
JNLPの場合
<?php
header("Content-Type: application/x-java-jnlp-file");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
?>



Content-Tpyeのチェック


Content-Tpyeのチェックを行うにwgetコマンドが使える環境ならwgetで確認できます。

wget http://deiji.jp/tools/websupport/groovyconsole/g.jnlp--13:22:13-- http://deiji.jp/tools/websupport/groovyconsole/g.jnlp
=> `g.jnlp'
Resolving deiji.jp... 219.94.129.200
Connecting to deiji.jp|219.94.129.200|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 729 [application/x-java-jnlp-file]


ブラウザにFireFoxを使用しているのであれば、FireFoxの機能拡張が便利なようです。

mozdev.org - livehttpheaders: index

キャプチャした画面


参考

ウノウラボ Unoh Labs: すべてのWebデベロッパーに必須なFirefox拡張20(+1)選


さいごに


Java Web Startを使用したアプリケーションの提供がもっと一般的になったらいいなと思ってます。
アイデアとして起動時にとりこむライブラリをユーザーに選択させて、動作させるのはそんなに悪くないと考えているのですが、どうでしょう。

java 証明書を作成する際に、期限の設定をする 2007/07/31

証明書を作成する際に使用するkeytoolで、期限の設定の仕方は、-validityで日にちを設定するようです。

keytool -genkey -keystore myKeyStore -alias myAlias -validity 4000


この例だと4000日ということになります。

java jnlpでファイルの読み書きごとにユーザに問いあわせれば証明書はいらないようだ。 2007/07/30



JNLP API の FileOpenService を使用すると、証明書などを用意しなくても、ユーザがFileChooserで指定したローカルファイルだけを読み書きすることができます。Java Web Start - てんぷらメモ