jar文件在哪里缓存用于Java Web Start / JNLP应用程序?

时间:2009-10-04 20:49:10

标签: java jnlp java-web-start

为Java Web Start / JNLP应用程序缓存的jar文件在哪里?

6 个答案:

答案 0 :(得分:25)

这取决于您的操作系统和虚拟机,例如:

  • 使用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文件设置)进行配置。

答案 1 :(得分:10)

在Windows Vista或7上,它位于%AppData%\LocalLow\Sun\Java\Deployment\cache

答案 2 :(得分:3)

对于使用icedtea的ubuntu和其他基于debian的Linux发行版:/home/USER/.icedtea/cache

如果您只想清除缓存javaws -uninstall将无法正常工作。 javaws -Xclearcache为icedtea做了工作。

答案 3 :(得分:2)

JNLP不仅仅是Sun的实施。

Debain提供的OpenJDK软件包,例如,捆绑netx,它将文件存储在~/.netx/cache/中。 Wikipedia entry有一个除Sun之外的已知实现列表。

你真的不应该依赖于你的应用程序代码中众所周知的这条路径。

答案 4 :(得分:1)

如果您对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

答案 5 :(得分:0)

您可以轻松查看或清除(卸载)Java WebStart应用程序。这可以使用Java控制面板完成,如下所述。http://www.ngs.ac.uk/ukca/certificates/certwizard/clearwebstartcache

相关问题