2014-10-20 8 views
17

से जावा सिस्टम गुणों को पढ़ना क्या कमांड लाइन से सिस्टम गुणों को मुद्रित करने का कोई बेहतर तरीका है? जैसा कि हम संपत्ति सेट कर सकते हैं उदा।कमांड लाइन

java -D<name>=<value> //set a system property 

ऐसा करने के लिए कक्षा लिखने के बिना? यदि संभव नहीं है, तो कमांड लाइन से ऐसा करने के लिए यह संभव/व्यवहार्य/अच्छा क्यों नहीं है?

+0

JVM प्रारंभ करते समय एक सिस्टम प्रॉपर्टी सेट की जाती है। इससे पहले पढ़ने के लिए कुछ भी नहीं है। – Seelenvirtuose

+0

क्या आप डिफ़ॉल्ट सिस्टम गुणों और कमांड लाइन के माध्यम से सेट/ओवरराइड के बीच अंतर करने में सक्षम होना चाहते हैं? – Bohemian

+0

क्या आप सिस्टम गुणों को पढ़ने के लिए कह रहे हैं? –

उत्तर

34

आप हॉटस्पॉट JVM संस्करण 1.7 और ऊपर (1.6 में समर्थित नहीं) में -XshowSettings ध्वज का उपयोग कर सकते हैं:

java -XshowSettings:properties -version 

OpenJDK समर्थन किया गया है 2010 के अंत

के बाद से इस ध्वज http://marxsoftware.blogspot.de/2016/02/hotspot-jvm-XshowSettings.html

में देखा के लिए 0

संपादित 14 दिसंबर 2016

Oracle JVM उपकरण jcmd जो आप झंडे एक चल JVM में वर्तमान को देखने के लिए अनुमति देता है के साथ जहाज। देखें:

https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html

उपयोग के इस मामले के लिए, आप इस्तेमाल कर सकते हैं:

jcmd <pid> VM.system_properties 

लेकिन वहाँ भी कई अन्य उपयोगी आदेशों हैं। उदाहरण के लिए:

jcmd <pid> VM.flags 
jcmd <pid> VM.command_line 
jcmd <pid> GC.run 
+0

ऐसा लगता है कि 'VM.system_properties' केवल प्रिंट "अच्छी तरह से ज्ञात" गुणों को प्रिंट करता है। क्या उपयोगकर्ता द्वारा बनाई गई संपत्तियों को देखने का कोई तरीका है? –

+1

मुझे नहीं पता। मेरा सुझाव है कि आप एक प्रश्न पोस्ट करें और इसे लिंक करें। – AdrianRM

13

आप jps का उपयोग कर सकते हैं जो एक उपकरण जेडीके के साथ आता है। यह जावा प्रक्रिया में पारित सिस्टम गुणों को मुद्रित कर सकता है।

उदाहरण के लिए: अपने सिस्टम ग्रहण पर चल रहा है और

$ jps -v 

आउटपुट

6632 -Dosgi.requiredJavaVersion=1.6 -Xms1024m -Xmx2048m -XX:MaxPermSize=512m 

jps में JDK_HOME/bin

संपादित स्थित है

y हैं कहां चाहते हैं कि सभी गुण jinfo उपकरण का उपयोग करें जो JDK_HOME/bin में भी स्थित है। इसका उपयोग करने के लिए आपको जावा प्रक्रिया की प्रक्रिया आईडी जाननी चाहिए जिसे आप जानकारी प्राप्त करना चाहते हैं। जैसे

$ jinfo 6632 

यह उपकरण भी बाहर प्रिंट java.ext.dirs

+0

'java.ext.dirs' के मान को कैसे प्राप्त करें? – sakhunzai