2009-10-04 33 views

Trả lời

22

... Nó phụ thuộc vào hệ điều hành của bạn và máy ảo, ví dụ:

  • với Sun JDK 1.5 và Windows XP: C:\Documents and Settings\userid\Application Data\Sun\Java\Deployment\cache\javaws\
  • với Sun JDK 1.6 và Vista: C:\Users\userid\AppData\LocalLow\Sun\Java\Deployment\cache\6.0
  • với một Sun JDK 1.6 và GNU/Linux: /home/userid/.java/deployment/cache/6.0
  • với Sun JDK 1.6 và Mac OS X: ~/Library/Caches/Java/cache/6.0/

Với Sun JDK 6, điều này có thể được định cấu hình thông qua Bảng điều khiển Java (Tệp Internet Tạm thời Cài đặt trong tab Chung).

9

Trên Windows Vista hoặc 7, nó ở số %AppData%\LocalLow\Sun\Java\Deployment\cache.

+2

Điều đáng nói đến là phần mở rộng tập tin không phải là jar. Vì vậy, bạn có thể kiểm tra kích thước tập tin và tìm thấy nó bằng cách nào đó. – Soley

+0

Không hoạt động nhưng '% HOMEPATH% \ appdata \ LocalLow \ Sun \ Java \ Deployment \ cache' là ok. % AppData% chuyển đến '% HOMEPATH% \ appdata \ Roaming' – GeoStoneMarten

2

Có nhiều điều hơn với JNLP hơn là chỉ thực hiện của Sun.

Các gói OpenJDK được vận chuyển bởi Debain, ví dụ: gói netx, lưu trữ các tệp của nó trong ~/.netx/cache/. Các Wikipedia entry có một danh sách các triển khai được biết đến khác hơn là của Sun.

Bạn thực sự không nên dựa vào con đường này đang nổi tiếng trong mã của ứng dụng của bạn.

3

cho ubuntu và debian dựa distro Linux khác sử dụng IcedTea: /home/USER/.icedtea/cache

trong trường hợp bạn muốn chỉ để xóa bộ nhớ cache javaws -uninstall sẽ không hoạt động. javaws -Xclearcache thực hiện công việc cho icedtea.

1

Nếu bạn cũng quan tâm đến nội dung của các lọ trong bộ nhớ cache JNLP bạn có thể muốn sử dụng kịch bản sau đây (thử nghiệm trên Mac OS X) để kiểm tra các tập tin jar với 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 
Các vấn đề liên quan