2009-10-04 91 views

回答

22

這取決於你的...操作系統和虛擬機上,例如:

  • 在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文件設置常規選項卡)進行配置。

9

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

+2

值得一提的是,文件擴展名不是jar。所以,你可以檢查文件大小並以某種方式找到它。 – Soley 2015-05-16 07:44:08

+0

不工作,但'%HOMEPATH%\ appdata \ LocalLow \ Sun \ Java \ Deployment \ cache'是可以的。 %AppData%轉到'%HOMEPATH%\ appdata \ Roaming' – GeoStoneMarten 2016-02-10 19:38:46

2

JNLP不僅僅是Sun的實現。

Debain提供的OpenJDK軟件包,例如,軟件包netx,它將文件存儲在~/.netx/cache/中。 Wikipedia entry有一個除Sun以外的已知實現的列表。

你真的不應該依賴這條在你的應用代碼中衆所周知的路徑。

3

使用的IcedTea Ubuntu和其他基於Debian的Linux發行版:/home/USER/.icedtea/cache

的情況下,你只想清除緩存javaws -uninstall將無法​​正常工作。 javaws -Xclearcache完成冰鎮的工作。

1

如果你也有興趣在JNLP高速緩存罐子的內容,您可能需要使用下面的腳本(在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 
相關問題