为 Java Web Start/JNLP 应用程序缓存的 jar 文件在哪里?
6 回答
这取决于...取决于您的操作系统和虚拟机,例如:
- 使用 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
为冰茶做这项工作。
JNLP 不仅仅是 Sun 的实现。
Debain 提供的 OpenJDK 软件包,例如 bundle 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