jar文件缓存在哪里用于Java Web Start / JNLP应用程序?
jar文件缓存在哪里用于Java Web Start / JNLP应用程序?
这取决于您的操作系统和虚拟机,例如:
- 使用Sun JDK 1.5和Windows XP:
C:\Documents and Settings\userid\Application Data\Sun\Java\Deployment\cache\javaws\
- 使用Sun JDK 1.6和Vista:
C:\Users\userid\AppData\LocalLow\Sun\Java\Deployment\cache\6.0
- 使用Sun JDK 1.6和GNU / Linux:
/home/userid/.java/deployment/cache/6.0
- 使用Sun JDK 1.6和Mac OS X:
~/Library/Caches/Java/cache/6.0/
使用Sun JDK 6,可以通过Java控制面板( “ 常规”选项卡中的“Internet临时文件设置” )进行配置。
在Windows Vista或7上,它位于%AppData%\LocalLow\Sun\Java\Deployment\cache
。
使用icedtea的ubuntu和其他基于debian的linux发行版: /home/USER/.icedtea/cache
如果你只想清除缓存javaws -uninstall
将无法正常工作。 javaws -Xclearcache
为icedtea做的工作。
JNLP不仅仅是Sun的实施。
Debain提供的OpenJDK软件包,例如bundle netx ,它将文件存储在~/.netx/cache/
。 维基百科条目列出了除Sun之外的已知实现。
你真的不应该依赖这个在你的应用程序代码中众所周知的路径。
如果您还对JNLP缓存中的jar内容感兴趣,您可能需要使用以下脚本(在Mac OS X上测试)来检查jar文件的jar -tvf:
#!/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