दिलचस्प पोस्ट
कार्य को रद्द करना एक अपवाद फेंक रहा है Keras प्रशिक्षण डेटा आकार misinterprets ऑब्जेक्ट ओरिएंटेड बेस्ट प्रैक्टिस – इनहेरिटन्स वी कंपोज़शन v इंटरफेस मैं UIView के सभी सबव्यूज़, और उनके सबव्यूज़ और उनके सबव्यूज़ के माध्यम से कैसे लूप कर सकता हूं जावा: स्टेटिक बनाम इनर क्लास Windows के लिए XAMPP में mysql क्लाइंट ".my.cnf" का स्थान क्या है? क्या यह Files.lines () में एक बग है, या मैं समानांतर धाराओं के बारे में कुछ गलतफहमी है? क्या HTML में <script> टैग स्थिति वेबपृष्ठ के प्रदर्शन को प्रभावित करती है? क्रोम एक्सटेंशन के अंतर्गत onClick काम नहीं कर रहा है SQL तालिका उपनाम का उपयोग कब करना पायथन में सूचियों को विलय / जोड़ना स्टोरीबोर्ड के साथ कस्टम दृश्य मैं foreach क्यों नहीं कर सकता (DataTable.Rows में var आइटम)? मैं पायथन कोड कैसे सुरक्षित करूं? एएसपी.नेट वेबफॉर्म को रनैट = "सर्वर" विशेषता की आवश्यकता क्यों है?

मैं कैसे बता सकता हूं कि क्या मैं 64-बिट जेवीएम या 32-बिट जेवीएम (एक प्रोग्राम में से) में चल रहा हूं?

मैं कैसे बता सकता हूं कि मेरा एप्लीकेशन 32 बिट या 64-बिट में चल रहा है? विशेष रूप से, क्या कार्यक्रम या वरीयता मैं कार्यक्रम के भीतर यह पता लगाने के लिए उपयोग करते हैं?

Solutions Collecting From Web of "मैं कैसे बता सकता हूं कि क्या मैं 64-बिट जेवीएम या 32-बिट जेवीएम (एक प्रोग्राम में से) में चल रहा हूं?"

JVM के बीसीसी के निर्धारण के लिए सूर्य के पास एक जावा सिस्टम की संपत्ति है: 32 या 64:

sun.arch.data.model=32 // 32 bit JVM sun.arch.data.model=64 // 64 bit JVM 

आप उपयोग कर सकते हैं

 System.getProperty("sun.arch.data.model") 

निर्धारित करने के लिए कि क्या इसकी 32/64 कार्यक्रम से।

सन हॉटस्पॉट एफएक्यू से :

जावा कोड लिखते समय, मैं 32 और 64-बिट ऑपरेशन के बीच अंतर कैसे कर सकता हूं?

कोई सार्वजनिक एपीआई नहीं है जो आपको 32 और 64-बिट ऑपरेशन के बीच अंतर करने की अनुमति देता है। 64-बिट को एक बार लिखने में एक और मंच के रूप में सोचें, कहीं भी परंपरा चलाएं। हालांकि, यदि आप कोड लिखना चाहते हैं जो प्लेटफ़ॉर्म विशिष्ट (आप पर शर्म) है, तो सिस्टम की संपत्ति sun.arch.data.model पास "32", "64", या "अज्ञात" है।

इसका एकमात्र अच्छा कारण यह है कि अगर आपका जावा कोड मूल पुस्तकालयों पर निर्भर है और आपके कोड को यह निर्धारित करने की आवश्यकता है कि स्टार्टअप पर कौन सी संस्करण (32 या 64 बिट) लोड हो।

आप कमांड लाइन पर कोशिश कर सकते हैं:

 java -d64 -version 

अगर यह 64-बिट संस्करण नहीं है, तो आपको ऐसा संदेश मिलेगा जो दिखता है:

यह जावा उदाहरण 64-बिट जेवीएम का समर्थन नहीं करता है। कृपया वांछित संस्करण स्थापित करें

अधिक जानकारी के लिए JVM के सहायता विकल्पों से परामर्श करें java -help

बस अपने कन्सोल में java -version टाइप करें

यदि कोई 64 बिट संस्करण चल रहा है, तो आपको एक संदेश मिलेगा जैसे:

 java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode) 

एक 32 बिट संस्करण कुछ इसी तरह दिखाई देगा:

 java version "1.6.0_41" Java(TM) SE Runtime Environment (build 1.6.0_41-b02) Java HotSpot(TM) Client VM (build 20.14-b01, mixed mode, sharing) 

नोट 64-Bit Server की बजाय तीसरी लाइन में Client Client/Server हिस्सा अप्रासंगिक है, यह 64-Bit की अनुपस्थिति है जो मायने रखता है।

यदि आपके सिस्टम पर कई जावा संस्करण इंस्टॉल किए गए हैं, तो जावा संस्करण के / bin फ़ोल्डर को खोजें, जिसे आप देखना चाहते हैं, और वहां java -version टाइप करें।

फिर से अपडेट करें :

मैंने 32-बिट जेवीएम इंस्टॉल किया है और इसे फिर से पुनर्प्रयास किया है, ऐसा लगता है कि आप जेवीएम बिलाइट बताते हैं, OS चाप नहीं:

 System.getProperty("os.arch"); # # on a 64-bit Linux box: # "x86" when using 32-bit JVM # "xmd64" when using 64-bit JVM 

यह SUN और IBM JVM (32 और 64-बिट) दोनों के विरुद्ध परीक्षण किया गया था। जाहिर है, सिस्टम संपत्ति सिर्फ ऑपरेटिंग सिस्टम मेहराब नहीं है

पूरक जानकारी:

चल रहे प्रक्रिया पर आप (हाल ही में कुछ हाल के सन जेडीके 5/6 संस्करणों के साथ) उपयोग कर सकते हैं:

 $ /opt/java1.5/bin/jinfo -sysprops 14680 | grep sun.arch.data.model Attaching to process ID 14680, please wait... Debugger attached successfully. Server compiler detected. JVM version is 1.5.0_16-b02 sun.arch.data.model = 32 

जहां 14680 आवेदन चल रहा है jvm का पीआईडी ​​है। "os.arch" भी काम करता है

इसके अलावा अन्य परिदृश्य समर्थित हैं:

 jinfo [ option ] pid jinfo [ option ] executable core jinfo [ option ] [server-id@]remote-hostname-or-IP 

हालांकि इस नोट पर भी गौर करें:

" नोट – यह सुविधा असमर्थित है और जेडीके के भविष्य के संस्करणों में उपलब्ध नहीं हो सकती है या हो सकती है। Windows सिस्टम में जहां dbgent.dll मौजूद नहीं है, 'विंडोज के लिए डिबगिंग टूल्स' को इन टूल्स का काम करने के लिए स्थापित करने की आवश्यकता है। पथ पर्यावरण चर में लक्ष्य प्रक्रिया या जिस स्थान से क्रैश डंप फ़ाइल का निर्माण किया गया था, द्वारा उपयोग किए जाने वाले jvm.dll का स्थान होना चाहिए। "

लिनक्स पर, आप निम्न दो आज्ञाओं में से किसी एक का उपयोग करके ELF शीर्षलेख जानकारी प्राप्त कर सकते हैं:

 file {YOUR_JRE_LOCATION_HERE}/bin/java 

ओ / पी: जीएनयू / लिनक्स 2.4.0 के लिए गतिशील रूप से लिंक (साझा किए गए लिब्स का उपयोग) जीएनयू / लिनक्स 2.4.0 के लिए एएलएफ 64-बिट एलएसबी निष्पादन योग्य , AMD x86-64, संस्करण 1 (SYSV), छीन नहीं है

या

 readelf -h {YOUR_JRE_LOCATION_HERE}/bin/java | grep 'Class' 

ओ / पी: कक्षा: एएलएफ 64

यदि आप JNA का उपयोग कर रहे हैं, तो आप जांच सकते हैं कि com.sun.jna.Native.POINTER_SIZE == 4 (32 बिट) या com.sun.jna.Native.POINTER_SIZE == 8 (64 बिट)।

विंडोज 7 के तहत " प्रोग्राम्स | प्रोग्राम्स और फीचर " के तहत " कंट्रोल पैनल " में जेआरई और जेडीके के 64-बिट संस्करण को " 64-बिट " कोष्ठकों में सूचीबद्ध किया गया है (उदाहरण के लिए " जावा एसई डेवलपमेंट किट 7 अपडेट 65 (64 बिट) ) "), जबकि 32-बिट संस्करणों के लिए कोष्ठकों में उल्लिखित संस्करण का उल्लेख नहीं किया गया है (उदाहरण के लिए" जावा एसई विकास किट 8 अपडेट 60 ")।

वर्तमान में प्रोग्राम चलाने वाला जेवीएम का संस्करण प्राप्त करने के लिए

 System.out.println(Runtime.class.getPackage().getImplementationVersion());