Khi bạn chạy một chương trình thông qua dòng lệnh, bạn có thể sử dụng java -Xms -Xmx
để chỉ định kích thước heap. Nếu chương trình sẽ được chạy bằng cách nhấp đúp vào tệp .jar, có cách nào để sử dụng nhiều heap hơn tiêu chuẩn không?Phân bổ nhiều khoảng trống hơn cho một bình Java
Trả lời
No. Đó là lý do tại sao tôi thường tạo một tệp .bat hoặc .sh với các tham số đó và người dùng trực tiếp để chạy nó thay vì .jar. Thật không may, đó là một chút xấu xí để có để bật lên một cửa sổ nhắc lệnh, nhưng điều đó không thể được giúp đỡ.
Là một lợi ích phụ, nếu ứng dụng của bạn bị đóng băng, bạn có thể hướng người dùng đặt pause
vào tệp lô (hoặc tự làm) và sau đó bạn có thể thấy bất kỳ dấu vết ngăn xếp nào xảy ra.
Chỉnh sửa: Bạn cũng có thể sử dụng trình bao bọc thực thi như JSmooth hoặc Launch4J thay vì tệp theo lô. Tuy nhiên, bạn sẽ mất một số tính tương thích đa nền tảng.
Thay vì bấm đúp vào tệp .jar trực tiếp, bạn có thể sử dụng tệp lô chạy java -jar -Xms -Xmx your_file.jar
. Từ quan điểm của người dùng, nó giống nhau, nhưng nó cho phép bạn kiểm soát nhiều hơn lệnh thực sự chạy.
+1 cho cùng một câu trả lời tôi đã làm. :) –
Bạn có thể sử dụng JSmooth hoặc trình bao bọc tương tự, tạo tệp EXE để khởi chạy JVM với các tham số cần thiết. Bằng cách đó bạn có thể tránh việc có một tập tin .bat và hộp thoại giao diện điều khiển của nó. Vẫn còn một cách nữa là bắt đầu chương trình thực tế trong tiến trình mới bằng cách sử dụng Runtime.exec hoặc ProcessBuilder.
Bạn có thể tự khởi động lại jar bằng Runtime.getRuntime(). Exec() với các tùy chọn bạn muốn. Các jar có thể chứa nhiều hơn một phương thức main() (trong các lớp khác nhau) và bạn có thể có một cuộc gọi khác thông qua một exec().
Một lựa chọn tốt khác (mặc dù không dễ dàng tìm ra dung lượng bộ nhớ có sẵn để sử dụng). +1 –
- 1. chuỗi Splitting trên nhiều khoảng trống trong java
- 2. Java sử dụng nhiều bộ nhớ hơn so với bộ nhớ phân bổ
- 3. " 'khoảng trống' Không cho phép loại here" lỗi (Java)
- 4. Cho CPU nhiều thời gian hơn vào GC trong java?
- 5. Phân bổ bộ nhớ nonblocking Java
- 6. Phân bổ một vùng heap Java cho Tomcat trên một cá thể EC2
- 7. Xóa nhiều hơn một khoảng trắng trong powershell
- 8. Khoảng trống là gì?
- 9. Dịch vụ phân bổ nhiều bộ nhớ?
- 10. phân bổ bộ nhớ động java?
- 11. Shim một khoảng trống phương pháp
- 12. Tại sao Android phân bổ bộ nhớ nhiều hơn mức cần thiết khi tải hình ảnh
- 13. Java đang phân bổ thêm 2GB bộ nhớ
- 14. Sự khác biệt giữa trường hợp trung bình và phân tích phân bổ
- 15. Phân bổ bộ nhớ nhiều hơn 4GB trong hệ thống 64 bit
- 16. Ivy tải xuống nhiều bình hơn dự kiến
- 17. Làm cách nào để phân bổ một cam kết đơn lẻ cho nhiều nhà phát triển?
- 18. Phân bổ rõ ràng giá trị cho một mảng 2D?
- 19. UITableView đang nhận được một khoảng trống trên đầu trang
- 20. TeX: phân tích cú pháp chuỗi và khoảng trống trong khoảng trắng
- 21. Cắt/cắt tệp JPG với khoảng trống bằng Java
- 22. Phân bổ biến cục bộ để tránh nhiều phôi
- 23. khoảng cách giữa các khoảng trống imagettftext
- 24. Cách tạo và bao gồm các lớp Java và nhiều WSDL cho một cái bình
- 25. Sử dụng nhiều trình phân bổ hiệu quả
- 26. chuỗi phân tách có nhiều hơn một Char trong C#
- 27. Thêm nhiều khoảng trống hơn giữa các mục trong Android Spinner mà không có kiểu tùy chỉnh?
- 28. Phân bổ bộ nhớ cho một véc tơ
- 29. Có cách nào để chèn khoảng trống ở chế độ bình thường không?
- 30. Xóa tất cả các khoảng trống và các dòng trống
@mmyers: Nguyền ngón tay nhỏ nhanh của bạn! Đánh bại tôi với nó bằng 54 giây! – Welbog
Xin lỗi, tôi thấy bạn đang bận chỉnh sửa câu hỏi. (Tôi nghĩ rằng đó là lần đầu tiên bất cứ ai đã từng nguyền rủa những ngón tay nhỏ bé của tôi ...) –
Bạn cũng có thể sử dụng một cái gì đó như JSmooth: http://jsmooth.sourceforge.net/ – millimoose