คำถามติดแท็ก jvm

Java Virtual Machine (JVM) เปิดใช้งานชุดของโปรแกรมซอฟต์แวร์คอมพิวเตอร์และโครงสร้างข้อมูลเพื่อใช้โมเดลเครื่องเสมือนสำหรับการทำงานของโปรแกรมคอมพิวเตอร์และสคริปต์อื่น ๆ ใช้แท็กนี้สำหรับคำถามที่เกี่ยวข้องกับเครื่องมือที่จัดทำโดย JVM หรือวิธีการทำงานในสถานการณ์เฉพาะ

8
จะตั้งค่าพารามิเตอร์ JVM สำหรับ Junit Unit Tests ได้อย่างไร?
ฉันมีการทดสอบหน่วย Junit บางอย่างที่ต้องใช้พื้นที่ฮีปจำนวนมากในการรันนั่นคือ 1G (พวกเขาทดสอบฟังก์ชันการทำงานที่ต้องใช้หน่วยความจำมากสำหรับแอป webstart ซึ่งจะทำงานโดยมีพื้นที่ฮีปเพียงพอเท่านั้นและจะทำงานภายในบนเครื่อง Win 7 64 บิตดังนั้นการออกแบบการทดสอบใหม่จึงไม่ใช่คำแนะนำที่ใช้ได้จริง) ฉันกำลังพัฒนาใน Intellij IDEA ดังนั้นฉันจึงรู้ว่าฉันสามารถตั้งค่าพารามิเตอร์ JVM (เช่น -Xmx1024M) สำหรับคลาสทดสอบได้ อย่างไรก็ตามนี่เป็นเพียงการเรียกใช้คลาสทดสอบทั้งหมดเท่านั้น - หากฉันต้องการเรียกใช้การทดสอบแต่ละรายการฉันต้องสร้างคอนฟิกูเรชันการรันสำหรับวิธีทดสอบนั้นใหม่ นอกจากนี้สิ่งเหล่านี้ยังเป็น IDE และเฉพาะกล่องดังนั้นหากฉันเปลี่ยนกล่อง (ฉันพัฒนาในหลายเครื่อง) หรือเพื่อนร่วมงานคนใดคนหนึ่งพยายามเรียกใช้การทดสอบการตั้งค่าเหล่านั้นจะไม่ถูกถ่ายโอน (นอกจากนี้เพื่อนร่วมงานของฉันยังใช้ IDE อื่น ๆ เช่น Eclipse และ NetBeans) FWIW เราใช้ mercurial สำหรับการควบคุมซอร์สโค้ด สำหรับรอบการสร้างเราใช้ Maven ดังนั้นฉันจึงรู้วิธีระบุพารามิเตอร์ JVM สำหรับสิ่งนั้น ดังนั้น: - ฉันกำลังมองหาวิธีระบุพารามิเตอร์ JVM ที่จะใช้กับคลาสทดสอบทั้งหมดและวิธีการทดสอบแต่ละวิธี และ …

2
จำกัด การบันทึกการดีบัก java ssl
ใช้แฟล็ก JVM -Djavax.net.debug=ssl กำลังสร้างการบันทึกจำนวนมหาศาลรายละเอียดของเหตุการณ์ SSL ทั้งหมดบนเซิร์ฟเวอร์ มีเพียงข้อผิดพลาดในการบันทึกหรือไม่? หรืออาจมีบางส่วนที่ดีกว่าของแฟล็กเหล่านี้ที่สร้างผลลัพธ์ที่เป็นระเบียบเรียบร้อย all turn on all debugging ssl turn on ssl debugging The following can be used with ssl: record enable per-record tracing handshake print each handshake message keygen print key generation data session print session activity defaultctx print default SSL initialization sslctx print …
96 java  logging  ssl  jvm 

4
เหตุใด JVM จึงยังไม่รองรับการเพิ่มประสิทธิภาพการโทรหาง?
สองปีหลังจากการเพิ่มประสิทธิภาพdo -the-jvm-Prevent-tail-call-optimizationsดูเหมือนว่าจะมีการนำไปใช้งานต้นแบบ และMLVMได้ระบุคุณลักษณะนี้เป็น "โปรโต 80%" ในบางครั้ง ไม่มีความสนใจอย่างแข็งขันจากฝั่งของ Sun / Oracle ในการสนับสนุนการโทรหางหรือเป็นเพียงการเรียกหางคือ "[... ] โชคชะตาที่จะมาเป็นอันดับสองในทุกรายการลำดับความสำคัญของคุณลักษณะ [... ]" ตามที่กล่าวไว้ที่JVM การประชุมสุดยอดภาษา ? ฉันจะสนใจจริงๆถ้ามีคนทดสอบบิลด์ MLVM และสามารถแบ่งปันความประทับใจว่ามันทำงานได้ดีเพียงใด (ถ้าเป็นเช่นนั้น) อัปเดต: โปรดทราบว่า VM บางตัวเช่นAvianรองรับการโทรหางที่เหมาะสมโดยไม่มีปัญหาใด ๆ

4
Java: <init> และ <clinit> ต่างกันอย่างไร
ฉันไม่เข้าใจข้อความต่อไปนี้ ... หมายความว่า&lt;clinit&gt;มีไว้สำหรับตัวสร้างที่ว่างเปล่า? เหตุใดจึงสำคัญที่ต้องมีสองเวอร์ชันที่แตกต่างกัน https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html 2.9. Special Methods ในระดับของเครื่องเสมือน Java ทุกคอนสตรัค (§2.12) &lt;init&gt;จะปรากฏขึ้นเป็นวิธีการเริ่มต้นอินสแตนซ์ที่มีชื่อพิเศษ ชื่อนี้จัดทำโดยคอมไพเลอร์ เนื่องจากชื่อ&lt;init&gt;ไม่ใช่ตัวระบุที่ถูกต้องจึงไม่สามารถใช้โดยตรงในโปรแกรมที่เขียนด้วยภาษาโปรแกรม Java วิธีการเริ่มต้นอินสแตนซ์อาจถูกเรียกใช้เฉพาะภายในเครื่องเสมือน Java โดยคำสั่ง invokespecial และอาจถูกเรียกใช้บนอินสแตนซ์คลาสที่ไม่ได้กำหนดค่าเริ่มต้นเท่านั้น วิธีการเริ่มต้นอินสแตนซ์ใช้สิทธิ์การเข้าถึง (§2.7.4) ของตัวสร้างที่ได้รับมา คลาสหรืออินเทอร์เฟซมีเมธอดการเตรียมใช้งานคลาสหรืออินเตอร์เฟสไม่เกินหนึ่งคลาสและเริ่มต้น (§2.17.4) โดยเรียกใช้เมธอดนั้น วิธีการเริ่มต้นของคลาสหรืออินเทอร์เฟซเป็นแบบคงที่และไม่มีข้อโต้แย้ง &lt;clinit&gt;มันมีชื่อพิเศษ ชื่อนี้จัดทำโดยคอมไพเลอร์ เนื่องจากชื่อ&lt;clinit&gt;ไม่ใช่ตัวระบุที่ถูกต้องจึงไม่สามารถใช้โดยตรงในโปรแกรมที่เขียนด้วยภาษาโปรแกรม Java วิธีการเริ่มต้นคลาสและอินเตอร์เฟสถูกเรียกใช้โดยปริยายโดยเครื่องเสมือน Java พวกเขาจะไม่ถูกเรียกโดยตรงจาก inw2struction เครื่องเสมือน Java ใด ๆ แต่จะถูกเรียกโดยทางอ้อมเท่านั้นซึ่งเป็นส่วนหนึ่งของกระบวนการเริ่มต้นคลาส
95 java  jvm 

12
“ เกิดข้อผิดพลาดระหว่างการเริ่มต้น VM; ไม่สามารถจองพื้นที่เพียงพอสำหรับฮีปวัตถุ” โดยใช้ -Xmx3G
ก่อนอื่นฉันมีกล่องที่มีแรม 8GB ดังนั้นฉันสงสัยว่าหน่วยความจำทั้งหมดเป็นปัญหา แอปพลิเคชั่นนี้ทำงานได้ดีบนเครื่องที่มี 6GB หรือน้อยกว่า ฉันพยายามจองพื้นที่ 3GB โดยใช้ -Xmx3G ภายใต้ "VM Arguments" ใน Run Configurations in Eclipse ทุกครั้งที่ฉันพยายามจองมากกว่า 1500mb ฉันได้รับข้อผิดพลาดนี้:“ เกิดข้อผิดพลาดระหว่างการเริ่มต้น VM; ไม่สามารถจองพื้นที่เพียงพอสำหรับฮีปวัตถุ” โดยใช้ -Xmx3G เกิดขึ้นที่นี่คืออะไร?

18
แบบอักษรไม่สามารถใช้ได้กับ JVM ที่มี Jasper Reports
ฉันพยายามสร้างรายงานด้วย DynamicJasper แต่ได้รับข้อผิดพลาดต่อไปนี้: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. msttcorefontsติดตั้งแล้ว แต่ฉันเดาว่า JVM ไม่ได้ใช้ฟอนต์ใด ๆ จากมัน ฉันใช้ Ubuntu 10.04 ฉันจะแก้ไขปัญหานี้ได้อย่างไร?

3
การหมดอายุ Daemon เนื่องจากพื้นที่ฮีป JVM หมดลง
ฉันเพิ่งอัปเดต Android Studio เป็น 3.5 Beta 1 และได้รับ การหมดอายุ Daemon เนื่องจากพื้นที่ฮีป JVM หมดลง ข้อความในขณะที่บิลด์กำลังทำงาน นอกจากนี้การสร้างยังใช้เวลาอีกนานกว่าจะเสร็จสมบูรณ์ ใครมีความคิดเกี่ยวกับเรื่องนี้บ้าง?

8
วิธีการสร้างภาษาโปรแกรม JVM?
ฉันได้สร้างคอมไพเลอร์ในภาษา C (โดยใช้ Lex &amp; Bison) สำหรับภาษาการเขียนโปรแกรมแบบไดนามิกที่รองรับลูปการประกาศฟังก์ชันภายในฟังก์ชันการเรียกซ้ำ ฯลฯ ฉันยังสร้างเครื่องเสมือนที่รันโค้ดกลางที่สร้างโดยคอมไพเลอร์ ฉันกำลังคิดเกี่ยวกับการรวบรวมเป็น Java bytecode แทนที่จะเป็นรหัสกลางของฉันเอง ผมเห็นว่าคำถามเกี่ยวกับการสร้างภาษา JVM ได้รับแล้วถามแต่ผมไม่หาคำตอบให้ข้อมูลมาก นี่คือคำถามของฉัน: ฉันเดาว่าจะสร้างภาษาสำหรับ JVM สิ่งที่ต้องทำคือการอ่านหนังสือข้อกำหนดของ JVMคุณสามารถแนะนำหนังสืออะไรได้อีกบ้าง (ยกเว้น Dragon Book แน่นอน) ส่วนใหญ่ฉันกังวลเกี่ยวกับหนังสือหรือแบบฝึกหัดเกี่ยวกับวิธีสร้างภาษา JVM ไม่ใช่คอมไพเลอร์โดยทั่วไป มีไลบรารี Java มากมายสำหรับอ่านเขียนและเปลี่ยน.classไฟล์เช่นjclasslib , bcel , gnu bytecodeฯลฯ คุณจะแนะนำตัวไหน นอกจากนี้คุณทราบถึงไลบรารี C ที่ทำงานเดียวกันหรือไม่? ฉันกำลังคิดที่จะดูภาษาอื่นที่กำหนดเป้าหมายไปที่ JVM เช่น Clojure, Jython หรือ JRuby แต่ภาษาทั้งหมดเหล่านี้มีระดับสูงและซับซ้อนมาก (เพื่อสร้างคอมไพเลอร์สำหรับพวกเขา) ฉันกำลังมองหาภาษาการเขียนโปรแกรมที่ง่ายกว่า …

20
การอ้างอิงที่ไม่ได้รับการแก้ไขของ Kotlin ใน IntelliJ
ฉันเริ่มต้นด้วยบทช่วยสอนสำหรับการเรียนรู้ Kotlin ในIntelliJเมื่อฉันลองเรียกใช้ตัวอย่างเช่น fun main(args: Array&lt;String&gt;) { println("lol") } การดำเนินการถูกระงับด้วยข้อความError:(5, 5) Kotlin: Unresolved reference: println นี้นี่เป็นครั้งแรกที่ฉันใช้ IntelliJ ฉันไม่เคยทำงานในJavaโปรเจ็กต์ด้วยฉันขาดอะไรไปหรือเปล่า? แก้ไข: ฉันเห็นคำถามอื่นแล้วคำตอบไม่ถูกต้องสำหรับสถานการณ์ของฉัน

1
เกินขีด จำกัด ค่าโสหุ้ย GC
เวลาสุ่มตัวอย่างที่ JVM ใช้ในการโยน 'java.lang.OutOfMemoryError: GC เกินขีด จำกัด ค่าโสหุ้ย' คืออะไร ฉันรู้ว่าคุณสามารถควบคุม 98% และ 2% ด้วยพารามิเตอร์ GCTimeLimit และ GCHeapFreeLimit แต่เวลาสุ่มตัวอย่างเป็นอย่างไร

12
รับพารามิเตอร์ของ JVM ที่รันอยู่
มีวิธีรับพารามิเตอร์ของ JVM ที่รันอยู่หรือไม่? มีเครื่องมือบรรทัดคำสั่งเช่น jstat ซึ่งใช้เป็นอินพุต pid ของ JVM และส่งกลับพารามิเตอร์เริ่มต้นหรือไม่ ฉันสนใจเป็นพิเศษในค่า -Xmx และ -Xms ที่ได้รับเมื่อเริ่ม JVM ขอขอบคุณ. แก้ไข : เพื่อชี้แจงข้อ จำกัด ของฉัน JVM ที่เราต้องการตรวจสอบกำลังทำงานบนเซิร์ฟเวอร์ที่ใช้งานจริง นั่นเป็นเหตุผลว่าทำไมเราจึงต้องการให้มีการหยุดชะงักน้อยที่สุด เราสามารถตรวจสอบ JVM โดยใช้ jstat ดังนั้นเราหวังว่าจะมีวิธีง่ายๆที่คล้ายกันในการเข้าถึงพารามิเตอร์ แก้ไข : เราพยายามรับพารามิเตอร์โดยใช้ jvisualvm แต่ในการเชื่อมต่อกับ jvm ระยะไกลเราจำเป็นต้องเรียกใช้ jstatd และแก้ไขการตั้งค่าความปลอดภัยของ JVM ซึ่งเราพบว่าก่อกวนและมีความเสี่ยงอย่างมากในเซิร์ฟเวอร์ที่ใช้งานจริง
92 java  jvm 

8
Android Gradle ไม่สามารถสงวนพื้นที่เพียงพอสำหรับฮีปวัตถุ
ฉันได้ติดตั้ง Android Studio 1.1.0 แล้ว ฉันยังไม่ได้ทำอะไรเลยเช่นเริ่มแอปพลิเคชัน Android ใหม่หรือนำเข้าอะไรเลย มันพยายามสร้างบางอย่างและเกิดข้อผิดพลาดในการซิงค์ ข้อผิดพลาด: ไม่สามารถเริ่มกระบวนการ daemon ปัญหานี้อาจเกิดจากการกำหนดค่า daemon ไม่ถูกต้อง ตัวอย่างเช่นใช้อ็อพชัน jvm ที่ไม่รู้จัก โปรดดูบทแนะนำผู้ใช้เกี่ยวกับ daemon ที่http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html โปรดอ่านผลลัพธ์ของกระบวนการต่อไปนี้เพื่อดูข้อมูลเพิ่มเติม: เกิดข้อผิดพลาดระหว่างการเตรียมใช้งาน VM ไม่สามารถสำรองพื้นที่เพียงพอสำหรับฮีปวัตถุไม่สามารถสร้างเครื่องเสมือน Java ฉันตรวจสอบแล้วgradle.org/.../gradle_daemon.htmlแต่ไม่พบสิ่งที่ช่วยฉันแก้ปัญหาได้ ไม่ใช่ปัญหาหน่วยความจำเพราะฉันมีหน่วยความจำกายภาพ 8GB และไม่มีโปรแกรมอื่นทำงานอยู่
92 android  gradle  jvm  heap 

9
การใช้ C # สำหรับ JVM
มีใครพยายามใช้ C # สำหรับ JVM หรือไม่ ในฐานะนักพัฒนา Java ฉันมอง C # ด้วยความอิจฉา แต่ฉันไม่เต็มใจที่จะสละความสามารถในการพกพาและวุฒิภาวะของ JVM ไม่ต้องพูดถึงเครื่องมือที่หลากหลายสำหรับมัน ฉันรู้ว่ามีความแตกต่างที่สำคัญระหว่าง JVM และ CLR แต่มีอะไรที่เป็น showstopper หรือไม่?
91 c#  java  clr  jvm 

8
มี JVM หนึ่งรายการต่อแอปพลิเคชัน Java หรือไม่
JVM เดียวกันกับที่ใช้โดยแอปพลิเคชัน Java ทั้งหมดที่รันอยู่หรือใช้ 'หนึ่ง JVM ต่อแอปพลิเคชัน Java' หรือไม่ (กล่าวว่าแอปพลิเคชันคือ IntelliJ IDEA เซิร์ฟเวอร์และ NetBeans เป็นต้น) นอกจากนี้มีการเชื่อมต่อระหว่าง JVM ที่กำหนดและกระบวนการที่ใช้โดยแอปพลิเคชัน Java แต่ละตัวหรือไม่
91 java  process  jvm 

30
Android Studio - ไม่พบการติดตั้ง JVM
ฉันมีปัญหาในการพยายามบู๊ต Android Studio เมื่อฉันพยายามเปิดใช้งานหลังจากการติดตั้งฉันได้รับข้อผิดพลาดนี้: No JVM Installation found. Please install a 64 bit JDK. ข้อกำหนดระบบปัจจุบันของฉัน: ระบบปฏิบัติการ: Windows 8.0 64 bit version ติดตั้ง JDK:JDK 1.8.0 สิ่งที่ฉันได้ลอง: ฉันได้ลองสิ่งที่รายงานในข้อผิดพลาดและในวิธีแก้ปัญหาส่วนใหญ่เพื่อตั้งค่าJDK_HOMEตัวแปรในตัวแปรสภาพแวดล้อมเป็นเส้นทาง JDK ของฉัน (เวอร์ชัน 64 บิต) เช่นC:\Program Files\Java\jdk1.8.0_05 *I also have tried rebooting system, just in case to test if the environment variable is not …

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