Mengubah JVM di Jawa

18

Saya baru-baru ini menemukan JVM yang berbeda di halaman wiki dan berpikir saya akan mulai bermain-main. Sangat sulit untuk menemukan dokumentasi tentang cara mengkonfigurasi Java di Ubuntu.

Katakanlah saya ingin mengubah JRE atau JDK yang saya gunakan, saya bisa membuka terminal dan mengatakan

sudo update-alternatives --config java

Dan kemudian pilih dari salah satu versi yang diinstal.

Jika saya memahami hak JVM (yang mungkin sangat tidak saya ketahui), Anda dapat mengkonfigurasi openJDK untuk menggunakan JVM alternatif (Eg JAMVM) dan menjalankannya seperti itu

jamvm -jar foo.jar

2 pertanyaan,

1: Apakah saya memiliki konsep JVM? Seperti, apakah ini mungkin?

2: Jika demikian, bagaimana cara mengkonfigurasi JVM dan mengalihkan default ke JVM yang saya pilih?

NADA TAMBAHAN
sumber
Hebat, tambahkan jawaban yang bagus untuk pertanyaan Anda (Anda bisa menjawabnya sendiri) dan dapatkan suara!
Bruno Pereira
@BrunoPereira Selesai! Semoga itu mencakup banyak.
OVERTONE

Jawaban:

18

Jangan ragu untuk menggunakan ini sebagai referensi untuk mengutak-atik Java saat runtime.

Memilih JRE Anda

Untuk memilih JRE Anda, gunakan

sudo update-alternatives --config java

Ini akan memberikan sesuatu seperti output berikut.

  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

Anda kemudian dapat memilih runtime Java yang Anda inginkan melalui pemilihan nomor.


Memilih JVM Anda

Sun / Oracle memiliki dua pilihan JVM, -server dan -client. Jika Anda memilih OpenJDK sebagai lingkungan Java runtime Anda, Anda memiliki opsi tambahan.

Saat Anda mengetik javadi terminal tanpa parameter lain, bantuan akan mencantumkan beberapa VM opsional. Saya tidak yakin mana yang datang dengan OpenJDK tetapi 3 yang populer adalah JamVM, Zero dan Cacao

Untuk menggunakan ini, cukup ketik

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

-Server VM biasanya adalah default. Anda juga dapat menentukan -clienttetapi dalam 64-bit IcedTea6 tampaknya menjalankan versi yang sama dengan -server. Ada kemungkinan besar yang lain tetapi saya menemukan opsi default menjadi yang paling responsif.


Mengatur Memori Anda

Akhirnya, cara mengatur memori Java (hanya karena)

java -Xmx1024m -Xms128m 'your other parameters here'

Ini membatasi memori yang diizinkan untuk program Java hingga maksimum 1024 MB, dan menetapkan ukuran memori awalnya menjadi 128 MB. Ini adalah cara yang bagus untuk mendefinisikan persyaratan sistem minimum. The Java 6 halaman manual untuk javaperintah menjelaskan pilihan ini dan lain-lain.

Itu saja. Jika ada yang punya tambahan Java tweak untuk Ubuntu maka tinggalkan di komentar dan saya akan menambahkannya.

NADA TAMBAHAN
sumber
Ada sekitar 47 file yang dapat dieksekusi dalam $ JAVA_HOME / bin dan $ JAVA_HOME / jre / bin yang menyerukan skrip untuk memperbarui semua entri dalam sistem alternatif. Lihat file /usr/lib/jvm/.java*.jinfo.
pengguna tidak diketahui
Bagaimana cara mengatur JVM default? Dari apa yang saya dengar, -server memiliki waktu start-up yang lama, jadi mengapa tidak -client default untuk instalasi pengguna?
dhardy
Apakah ada cara untuk benar-benar mengubah default, atau apakah Anda harus secara eksplisit mengatur JVM dan batas memori setiap kali (atau dalam setiap skrip startup individu)?
aij
0

Untuk mengatur JVM default di dalam instalasi OpenJDK Anda perlu mengedit file konfigurasi jvm.cfg yang terletak di dalam / usr / lib / jvm / java- versi -openjdk- arch / jre / lib / arch /jvm.cfg

Ubuntu mengekspos file jvm.cfg di dalam direktori / etc / tergantung pada versi OpenJDK. / etc / java-6-openjdk / jvm- lengkungan Cfg atau / etc / java-7-openjdk / jvm- lengkungan Cfg

Baris paling atas - jvmname TAHU dalam file jvm.cfg menentukan JVM default.

Tidak ada alat konfigurasi yang tersedia sehingga Anda harus mencari dan mengedit file-file ini secara manual.

xranby
sumber