Có thể buộc xóa bộ nhớ cache khi ứng dụng khởi động web java được cập nhật từ dòng lệnh không?Có thể buộc xóa bộ nhớ cache khi ứng dụng khởi động web java được cập nhật không?
Trả lời
Hiện tại không có cách nào để xóa bộ nhớ cache từ bên trong ứng dụng đang chạy hoặc ít nhất tôi không thể tìm thấy bộ nhớ cache.
Cá nhân, tôi sẽ vô hiệu hóa bộ nhớ đệm trong khi phát triển.
Windows: - Tới đi ControlPanel/Java
Linux: - $ JAVA_HOME/bin/jcontrol
-> Temporary Internet Files -> Settings -> Bỏ chọn "Giữ các tập tin tạm thời trên máy tính của tôi"
Nhấp vào "Xóa tệp" để xóa tất cả bộ nhớ cache trong khi bạn ở đó.
Theo Javaws documentation, bạn có thể xóa bộ nhớ cache với:
javaws -uninstall
hoặc
javaws -uninstall <jnlp>
Tuy nhiên, gần như theo định nghĩa, bạn không cần phải xóa bộ nhớ cache nếu ứng dụng là Đang được cập nhật. Có vẻ như đôi khi Javaws không cập nhật ứng dụng.
Tôi đã sử dụng để kiểm tra URL nơi tôi lưu trữ 'phiên bản mới nhất' của ứng dụng. Khi ứng dụng bắt đầu, tôi tìm nạp URL và so sánh với phiên bản đang chạy. Nếu chúng khác nhau, tôi bật lên "Có phiên bản mới - cập nhật ngay bây giờ?" hộp tin nhắn.
Nếu người sử dụng chọn để cập nhật, tôi sử dụng (với ngoại lệ thích hợp xử lý không được hiển thị):
String uri = "http://www.myserver.com/path/to/myjnlp.jnlp";
String proc = "javaws";
Process javaws = new ProcessBuilder("javaws", uri).start();
System.exit(0);
Cho đến nay mà có vẻ là đủ, nhưng nếu cần thiết, tôi có thể mở đầu các javaws với:
Process uninstall = new ProcessBuilder("javaws", "-uninstall", uri).start();
uninstall.waitFor();
Nhược điểm duy nhất của việc này là, nếu bạn có liên kết trên Màn hình, người dùng sẽ được nhắc thêm lại. Nhưng đó là một mức giá nhỏ để trả cho việc cập nhật thực sự đang hoạt động ...
bạn muốn xóa "bộ nhớ cache" nào? –
Bộ nhớ cache java-web-start. – sorin