Pergunta

Onde está os arquivos jar em cache para aplicações Java Web Start / JNLP?

Foi útil?

Solução

Isso depende ... do seu sistema operacional e máquina virtual, por exemplo:.

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

Com uma Sun JDK 6, isso pode ser configurado através do Painel de Controle Java (Temporary Internet Files Configurações Geral guia).

Outras dicas

No Windows Vista ou 7, é em %AppData%\LocalLow\Sun\Java\Deployment\cache.

para o Ubuntu e outras distribuições Linux baseada no Debian usando icedtea: /home/USER/.icedtea/cache

caso você queira apenas para limpar o javaws -uninstall cache não vai funcionar. javaws -Xclearcache faz o trabalho para icedtea.

Há mais para JNLP do que apenas a implementação do Sol.

Os pacotes OpenJDK enviados por Debain, por exemplo, pacote netx , que armazena seus arquivos em ~/.netx/cache/. O href="http://en.wikipedia.org/wiki/Java_Web_Start#External_links" rel="nofollow noreferrer"> entrada tem uma lista de outros que Sun de implementações conhecidas.

Você realmente não deve contar com este caminho de ser bem conhecido no código do seu aplicativo.

Se você também está interessado no conteúdo dos frascos no cache JNLP você pode querer usar o seguinte script (testado em Mac OS X) para examinar os arquivos jar com 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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top