Thay đổi JVM trong Java


18

Gần đây tôi mới phát hiện ra các JVM khác nhau trên trang wiki và nghĩ rằng tôi bắt đầu mày mò. Thật khó để tìm tài liệu về cách định cấu hình Java trên Ubuntu.

Hãy nói rằng tôi muốn thay đổi JRE hoặc JDK mà tôi đang sử dụng, tôi có thể mở một thiết bị đầu cuối và nói

sudo update-alternatives --config java

Và sau đó chọn từ một trong các phiên bản đã cài đặt.

Nếu tôi hiểu đúng về JVM (mà tôi rất có thể không phải), bạn có thể định cấu hình openJDK để sử dụng JVM thay thế (ví dụ JAMVM) và chạy nó như vậy

jamvm -jar foo.jar

2 câu hỏi

1: Tôi có khái niệm về một JVM không? Như trong, điều này có thể?

2: Nếu vậy, làm cách nào để định cấu hình JVM và chuyển mặc định thành JVM mà tôi chọn?


Tuyệt vời, thêm một câu trả lời tốt cho câu hỏi của bạn (bạn có thể tự trả lời chúng) và nhận được một số phiếu bầu!
Bruno Pereira

@BrunoPereira Xong! Hy vọng rằng bao gồm các bó.
TỔNG QUAN

Câu trả lời:


18

Vui lòng sử dụng điều này như một tài liệu tham khảo để mày mò với Java khi chạy.

Chọn JRE của bạn

Để chọn JRE của bạn, sử dụng

sudo update-alternatives --config java

Điều này sẽ cung cấp một cái gì đó giống như đầu ra sau đây.

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      auto mode
* 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java         1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java             63        manual mode
  3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode

Sau đó, bạn có thể chọn thời gian chạy Java mà bạn muốn thông qua lựa chọn số.


Chọn JVM của bạn

Sun / Oracle có hai lựa chọn JVM, -server và -client. Nếu bạn chọn OpenJDK làm môi trường thời gian chạy Java, bạn có các tùy chọn bổ sung.

Khi bạn nhập javavào thiết bị đầu cuối không có tham số nào khác, trợ giúp sẽ liệt kê một số máy ảo tùy chọn. Tôi không chắc chắn những cái nào đi kèm với OpenJDK nhưng 3 cái phổ biến là JamVM, Zero và Cacao

Để sử dụng chúng, chỉ cần gõ

java -jamvm 'your other parameters here'
java -cacao 'your other parameters here'
java -zero 'your other parameters here'
java -server 'your other parameters here

VM máy chủ thường là mặc định. Bạn cũng có thể chỉ định -clientnhưng trong IcedTea6 64 bit, nó dường như chạy cùng phiên bản với -server. Có nhiều khả năng khác nhưng tôi thấy tùy chọn mặc định là phản hồi nhanh nhất.


Đặt bộ nhớ của bạn

Cuối cùng, làm thế nào để thiết lập bộ nhớ của Java (chỉ vì)

java -Xmx1024m -Xms128m 'your other parameters here'

Điều này giới hạn bộ nhớ cho phép của chương trình Java tối đa là 1024 MB và đặt kích thước bộ nhớ ban đầu của nó là 128 MB. Đây là một cách tuyệt vời để xác định các yêu cầu hệ thống tối thiểu. Các Java 6 trang người đàn ông cho javalệnh mô tả các tùy chọn này và những người khác.

Đó là tất cả. Nếu bất cứ ai có các chỉnh sửa Java bổ sung cho Ubuntu thì hãy để lại trong phần bình luận và tôi sẽ thêm chúng.


Có khoảng 47 tệp thực thi trong $ JAVA_HOME / bin và $ JAVA_HOME / jre / bin khóc cho một tập lệnh để cập nhật tất cả các mục trong hệ thống thay thế. Xem các tập tin /usr/lib/jvm/.java*.jinfo.
người dùng không xác định

Làm cách nào để đặt JVM mặc định? Từ những gì tôi đã nghe, máy chủ có thời gian khởi động lâu, vậy tại sao dù sao cũng không phải là mặc định cho cài đặt của người dùng?
dhardy

Có cách nào để thực sự thay đổi mặc định hay bạn phải đặt rõ ràng giới hạn JVM và bộ nhớ mỗi lần (hoặc trong mỗi tập lệnh khởi động riêng lẻ)?
aij

0

Để đặt JVM mặc định bên trong bản cài đặt OpenJDK, bạn cần chỉnh sửa tệp cấu hình jvm.cfg nằm trong / usr / lib / jvm / java- version -openjdk- arch / jre / lib / arch /jvm.cfg

Ubuntu hiển thị tệp jvm.cfg bên trong thư mục / etc / tùy thuộc vào phiên bản OpenJDK. / etc / java-6-openjdk / jvm- arch .cfg hoặc / etc / java-7-openjdk / jvm- arch .cfg

Đỉnh nhất - jvmname dòng BIẾT bên trong tập tin jvm.cfg xác định mặc định JVM.

Không có công cụ cấu hình có sẵn do đó bạn phải định vị và chỉnh sửa các tệp này theo cách thủ công.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.