2009-10-04 20 views

risposta

22

Dipende ... sul vostro sistema operativo e macchina virtuale, ad esempio:

  • con Sun JDK 1.5 e Windows XP: C:\Documents and Settings\userid\Application Data\Sun\Java\Deployment\cache\javaws\
  • con Sun JDK 1.6 e Vista: C:\Users\userid\AppData\LocalLow\Sun\Java\Deployment\cache\6.0
  • con un Sun JDK 1.6 e GNU/Linux: /home/userid/.java/deployment/cache/6.0
  • con Sun JDK 1.6 e Mac OS X: ~/Library/Caches/Java/cache/6.0/

Con un Sun JDK 6, è possibile configurarlo tramite il pannello di controllo Java (file temporanei Internet Impostazioni nella scheda Generale ).

9

Su Windows Vista o 7, è in %AppData%\LocalLow\Sun\Java\Deployment\cache.

+2

Vale la pena ricordare che l'estensione del file non è jar. Quindi, puoi controllare le dimensioni del file e trovarlo in qualche modo. – Soley

+0

Non funziona ma '% HOMEPATH% \ appdata \ LocalLow \ Sun \ Java \ Deployment \ cache' è ok. % AppData% vai a '% HOMEPATH% \ appdata \ Roaming' – GeoStoneMarten

2

C'è dell'altro in JNLP oltre all'implementazione di Sun.

I pacchetti OpenJDK forniti da Debain, ad esempio, bundle netx, che archivia i suoi file in ~/.netx/cache/. Lo Wikipedia entry ha un elenco di implementazioni note diverse da quelle di Sun.

Non si dovrebbe fare affidamento su questo percorso essendo ben noto nel codice dell'applicazione.

3

per Ubuntu e altre distribuzioni Linux basate su Debian utilizzando icedtea: /home/USER/.icedtea/cache

nel caso in cui si vuole solo cancellare la cache javaws -uninstall non funzionerà. javaws -Xclearcache fa il lavoro per icedtea.

1

Se siete interessati al contenuto dei vasi nella cache JNLP anche si potrebbe desiderare di utilizzare il seguente script (testato su Mac OS X) per esaminare i file jar con vaso -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 
Problemi correlati