การเปลี่ยน JVM ใน Java


18

ฉันเพิ่งค้นพบ JVM ที่แตกต่างกันในหน้าwikiและคิดว่าฉันจะเริ่มซ่อมแซม มันยากที่จะหาเอกสารเกี่ยวกับวิธีกำหนดค่า Java บน Ubuntu ว่า

ให้บอกว่าฉันต้องการเปลี่ยน JRE หรือ JDK ที่ฉันใช้ฉันสามารถถอดรหัสเปิดเทอร์มินัลแล้วพูด

sudo update-alternatives --config java

จากนั้นเลือกหนึ่งในเวอร์ชันที่ติดตั้ง

หากฉันเข้าใจสิทธิ์ของ JVM (ซึ่งฉันอาจไม่เข้าใจ) คุณสามารถกำหนดค่า openJDK ให้ใช้ JVM ทางเลือก (เช่น JAMVM) และเรียกใช้งานเช่น

jamvm -jar foo.jar

2 คำถาม

1: ฉันมีแนวคิดเรื่อง JVM ใช่ไหม? เช่นเดียวกับในนี้เป็นไปได้?

2: ถ้าเป็นเช่นนั้นฉันจะกำหนดค่า JVM และเปลี่ยนค่าเริ่มต้นเป็น JVM ที่ฉันเลือกได้อย่างไร?


เยี่ยมมากเพิ่มคำตอบที่ดีให้กับคำถามของคุณ (คุณสามารถตอบคำถามด้วยตัวเอง) และรับคะแนนโหวต!
Bruno Pereira

@BrunoPereira เรียบร้อยแล้ว! หวังว่าจะครอบคลุมกลุ่ม
รวม

คำตอบ:


18

รู้สึกอิสระที่จะใช้สิ่งนี้เป็นการอ้างอิงถึงการ tinkering กับ Java ที่รันไทม์

เลือก JRE ของคุณ

ในการเลือก JRE ของคุณให้ใช้

sudo update-alternatives --config java

สิ่งนี้จะให้อะไรบางอย่างเช่นผลลัพธ์ต่อไปนี้

  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

จากนั้นคุณสามารถเลือก Java runtime ที่คุณต้องการผ่านการเลือกตัวเลข


เลือก JVM ของคุณ

Sun / Oracle มีสองตัวเลือก JVM คือ -server และ -client หากคุณเลือก OpenJDK เป็นสภาพแวดล้อมรันไทม์ Java ของคุณคุณมีตัวเลือกเพิ่มเติม

เมื่อคุณพิมพ์javaลงในเทอร์มินัลโดยไม่มีพารามิเตอร์อื่น ๆ วิธีใช้จะแสดงรายการตัวเลือก VM หลายตัวเลือก ฉันไม่แน่ใจว่าอันไหนที่มาพร้อมกับ OpenJDK แต่ 3 อันที่ได้รับความนิยมคือ JamVM, Zero และ Cacao

หากต้องการใช้สิ่งเหล่านี้เพียงแค่พิมพ์

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 เป็นค่าเริ่มต้น คุณสามารถระบุได้-clientแต่ใน IcedTea6 แบบ 64 บิตดูเหมือนว่าจะเรียกใช้รุ่นเดียวกันกับ -server มีคนอื่น ๆ ที่มีแนวโน้มมากที่สุด แต่ฉันพบว่าตัวเลือกเริ่มต้นจะตอบสนองมากที่สุด


การตั้งค่าหน่วยความจำของคุณ

ในที่สุดวิธีการตั้งค่าหน่วยความจำของ Java (เพียงเพราะ)

java -Xmx1024m -Xms128m 'your other parameters here'

สิ่งนี้ จำกัด หน่วยความจำที่อนุญาตสำหรับโปรแกรม Java ไม่เกิน 1024 MB และตั้งขนาดหน่วยความจำเริ่มต้นเป็น 128 MB นี่เป็นวิธีที่ยอดเยี่ยมในการกำหนดความต้องการขั้นต่ำของระบบ หน้าJava 6 manสำหรับjavaคำสั่งอธิบายตัวเลือกเหล่านี้และอื่น ๆ

นั่นคือทั้งหมดที่ หากใครมี Java tweaks เพิ่มเติมสำหรับ Ubuntu แล้วปล่อยไว้ในความคิดเห็นและฉันจะเพิ่มพวกเขา


มีไฟล์ที่สามารถเรียกใช้งานได้ประมาณ 47 ไฟล์ใน $ JAVA_HOME / bin และ $ JAVA_HOME / jre / bin ซึ่งร้องขอให้สคริปต์เพื่ออัพเดตรายการทั้งหมดในระบบทางเลือก ดูไฟล์ /usr/lib/jvm/.java*.jinfo
ผู้ใช้ที่ไม่รู้จัก

ฉันจะตั้งค่า JVM เริ่มต้นได้อย่างไร จากสิ่งที่ฉันได้ยิน - เซิร์ฟเวอร์มีเวลาเริ่มต้นนานดังนั้นเหตุใดจึงไม่ - เป็นค่าเริ่มต้นสำหรับการติดตั้งของผู้ใช้
dhardy

มีวิธีในการเปลี่ยนค่าเริ่มต้นจริง ๆ หรือคุณต้องตั้งค่า JVM และ จำกัด หน่วยความจำอย่างชัดเจนทุกครั้ง (หรือในสคริปต์เริ่มทำงานแต่ละตัว)
aij

0

ในการตั้งค่า JVM เริ่มต้นภายในการติดตั้ง OpenJDK คุณต้องแก้ไขไฟล์การกำหนดค่า jvm.cfg ที่อยู่ภายใน / usr / lib / jvm / java- เวอร์ชัน -openjdk- arch / jre / lib / arch / jvm.cfg

Ubuntu เปิดเผยไฟล์ jvm.cfg ภายในไดเร็กทอรี / etc / ขึ้นอยู่กับรุ่น OpenJDK / etc / java-6-OpenJDK / jvm- โค้ง .cfg หรือ / etc / java-7-OpenJDK / jvm- โค้ง .cfg

บรรทัดสูงสุด - jvmname ที่เป็นที่รู้จักภายในไฟล์ jvm.cfg พิจารณา JVM เริ่มต้น

ไม่มีเครื่องมือกำหนดค่าดังนั้นคุณต้องค้นหาและแก้ไขไฟล์เหล่านี้ด้วยตนเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.