Java Web Start/JNLPアプリケーションのjarファイルはどこにキャッシュされますか?
それは... OSと仮想マシンに依存します、例えば:
C:\Documents and Settings\userid\Application Data\Sun\Java\Deployment\cache\javaws\
C:\Users\userid\AppData\LocalLow\Sun\Java\Deployment\cache\6.0
/home/userid/.Java/deployment/cache/6.0
~/Library/Caches/Java/cache/6.0/
Sun JDK 6の場合、これはJavaコントロールパネル(一時的なインターネットファイル設定全般タブ))で設定できます。
Windows Vistaまたは7では、%AppData%\LocalLow\Sun\Java\Deployment\cache
。
ubuntuおよび他のdebianベースのLinuxディストリビューションの場合、icedteaを使用:/home/USER/.icedtea/cache
キャッシュをクリアしたい場合のためにjavaws -uninstall
は機能しません。 javaws -Xclearcache
はアイスティーの仕事をします。
JNLPには、Sunの実装だけではありません。
たとえば、Debainによって出荷されたOpenJDKパッケージは、バンドル netx であり、ファイルを~/.netx/cache/
に保存します。 Wikipediaエントリ には、Sun以外の既知の実装のリストがあります。
アプリケーションのコードでよく知られているこのパスに依存すべきではありません。
JNLPキャッシュ内のjarの内容にも関心がある場合は、次のスクリプト(Mac OS Xでテスト済み)を使用して、jar -tvfでjarファイルを調べることができます。
#!/bin/bash
# Author: WF
# see http://stackoverflow.com/questions/1517350/where-is-the-jar-files-cached-for-Java-web-start-jnlp-applications
os=`uname`
case $os in
# Mac OS X
Darwin*)
jnlpcache="$HOME/Library/Application Support/Oracle/Java/Deployment/cache/6.0"
;;
*)
echo "to make this script work for $os you might want to edit it" 1>&2
echo "and add a case option" 1>&2
echo "please copy your result back to the stackoverflow answer" 1>&2
exit 1
;;
esac
cd "$jnlpcache"
tmp="/tmp/jnlp$$"
for f in `find . -type f`
do
jar -tvf $f 2>/dev/null > $tmp
if [ $? -eq 0 ]
then
echo "found jar $f"
echo "it contains: "
cat $tmp
fi
done
rm $tmp
Java WebStartアプリケーションを簡単に表示または削除(アンインストール)できます。これは、Javaコントロールパネルを使用して以下のように実行できます。 http ://www.ngs.ac.uk/ukca/certificates/certwizard/clearwebstartcache