Java'da JVM'yi değiştirme


18

Yakın zamanda wiki sayfasında farklı JVM'leri keşfettim ve tamir etmeye başlayacağımı düşündüm. Ancak Ubuntu'da Java'yı nasıl yapılandıracağınıza dair belgeler bulmak zor oldu.

Diyelim ki kullandığım JRE veya JDK'yı değiştirmek istedim, bir terminal açıp

sudo update-alternatives --config java

Ve sonra kurulu sürümlerden birini seçin.

JVM'nin hakkını (çok iyi olmayabilirim) anlıyorsam, openJDK'yı alternatif JVM'leri (Ör: JAMVM) kullanacak ve bu şekilde çalıştıracak şekilde yapılandırabilirsiniz.

jamvm -jar foo.jar

2 soru,

1: JVM kavramına sahip miyim? Olduğu gibi, bu mümkün mü?

2: Öyleyse JVM'yi nasıl yapılandırabilirim ve varsayılanı seçtiğim bir JVM'ye nasıl geçirebilirim?


Harika, sorunuza iyi bir cevap ekleyin (kendiniz cevaplayabilirsiniz) ve oy verin!
Bruno Pereira

@BrunoPereira Tamamlandı! Umarım bu grubu kapsar.
OVERTONE

Yanıtlar:


18

Bunu, çalışma zamanında Java ile gezinmeye referans olarak kullanmaktan çekinmeyin.

JRE'nizi seçme

JRE'nizi seçmek için şunu kullanın:

sudo update-alternatives --config java

Bu aşağıdaki çıktı gibi bir şey verecektir.

  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

Daha sonra numara seçimi ile istediğiniz Java çalışma zamanını seçebilirsiniz.


JVM'nizi seçme

Sun / Oracle'ın iki JVM seçeneği vardır, -server ve -client. Java çalışma zamanı ortamınız olarak OpenJDK'yı seçerseniz, ek seçenekleriniz vardır.

javaBaşka bir parametre olmadan terminale yazdığınızda , yardımda birkaç isteğe bağlı VM listelenir. Hangilerinin OpenJDK ile geldiğinden emin değilim ama 3 popüler olan JamVM, Zero ve Cacao

Bunları kullanmak için şunu yazın:

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 normalde varsayılan değerdir. Ayrıca belirtebilirsiniz -clientancak 64 bit IcedTea6'da -server ile aynı sürümü çalıştırıyor gibi görünür. Büyük olasılıkla başkaları var ama varsayılan seçeneği en duyarlı buluyorum.


Belleğinizi Ayarlama

Son olarak, Java belleği nasıl ayarlanır (sadece)

java -Xmx1024m -Xms128m 'your other parameters here'

Bu, Java programı için izin verilen belleği maksimum 1024 MB ile sınırlar ve başlangıç ​​bellek boyutunu 128 MB olarak ayarlar. Bu, minimum sistem gereksinimlerini tanımlamanın harika bir yoludur. Java 6 adam sayfası için javakomuta Bu seçenekleri ve diğerlerini açıklar.

Bu kadar. Herkes Ubuntu için ek Java tweaks varsa o zaman onları yorumlarda bırakın ve ben ekleyeceğim.


$ JAVA_HOME / bin ve $ JAVA_HOME / jre / bin içinde alternatif sistemdeki tüm girdileri güncellemek için bir komut dosyası çağıran yaklaşık 47 yürütülebilir dosya vardır. /Usr/lib/jvm/.java*.jinfo dosyalarına bakın.
kullanıcı bilinmiyor

Varsayılan JVM'yi nasıl ayarlarım? Duyduğum kadarıyla, -server'in uzun başlatma süreleri var, o zaman neden -client bir kullanıcı kurulumu için varsayılan olarak ayarlanmıyor?
dhardy

Varsayılanları gerçekten değiştirmenin bir yolu var mı, yoksa JVM ve bellek sınırlarını her seferinde (veya her bir başlangıç ​​komut dosyasında) açıkça ayarlamanız gerekiyor mu?
aij

0

Bir OpenJDK kurulumunun içindeki varsayılan JVM'yi ayarlamak için / usr / lib / jvm / java- version -openjdk- arch / jre / lib / arch /jvm.cfg içinde bulunan jvm.cfg yapılandırma dosyasını düzenlemeniz gerekir

Ubuntu, OpenJDK sürümüne bağlı olarak jvm.cfg dosyasını / etc / dizini içinde gösterir. / etc / java-6-openjdk / jvm- arch .cfg veya / etc / java-7-openjdk / jvm- arch .cfg

En üst - jvmname jvm.cfg dosyasının içinde BİLİNEN hat varsayılan JVM belirler.

Kullanılabilir bir yapılandırma aracı olmadığından bu dosyaları manuel olarak bulup düzenlemeniz gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.