2013-11-28 4 views
5

सेट करना है, मैंने दोहरी-स्टैक मशीन आईपीवी 6 रखने के लिए आईपीवी 6 सक्षम करने के कई स्थानों की खोज की है। मैंने पाया है कि कई ने java.net.preferIPv6Addresses = true सेट करने का उत्तर दिया है जो डिफ़ॉल्ट रूप से गलत पर सेट है।जहां java.net.preferIPv6Addresses = true

मैं जानना चाहता हूं कि मुझे इन परिवर्तनों को वास्तव में कहां करना चाहिए, यानी मुझे यह फ़ाइल करने के लिए कुछ जावा कोड लिखना है या नहीं।

उत्तर

7

सेटिंग को सिस्टम गुणों में शामिल होने की आवश्यकता है ... और जावा क्लास लाइब्रेरी के प्रासंगिक भाग से पहले इसे वहां होना आवश्यक है।

ऐसा करने के लिए "बम सबूत" तरीका एक कमांड लाइन पैरामीटर के रूप में JVM को सेटिंग पास करना है; जैसे

java -Djava.net.preferIPv6Addresses=true ... com.example.MainClass <args> 

तुम भी सेटिंग

System.setProperty("java.net.preferIPv6Addresses", "true"); 

का उपयोग कर इंजेक्षन करने के लिए अपने आवेदन कोड सकता है, लेकिन आप यह सुनिश्चित करें कि इंजेक्शन जल्द ही होता है की जरूरत है, और कहा कि तुच्छ नहीं होगा।

1 - "जल्द ही पर्याप्त" का अर्थ है जेवीएम नेटवर्किंग कोड की स्थिर प्रारंभिक घटना से पहले। जटिल अनुप्रयोग में हासिल करना मुश्किल हो सकता है। Network Properties प्रलेखन राज्यों पर ध्यान दें: "कुछ को केवल वीएम के स्टार्टअप पर चेक किया जाता है, और इसलिए जावा कमांड के-डी विकल्प का उपयोग करके सबसे अच्छा सेट किया गया है ..."। ध्यान दें कि यह नहीं बताता है कि उन गुणों को केवल उसी तरह से सेट किया जा सकता है।


JAVA_OPTS वातावरण चर का उपयोग कर केवल कुछ अनुप्रयोगों के लिए काम करेंगे के सुझाव। यह निर्भर करता है कि एप्लिकेशन की लॉन्चर/रैपर स्क्रिप्ट क्या करती है। मानक java.exe और javaw.exe आदेशों निश्चित रूप से न करें$JAVA_OPTS

के लिए किसी भी ध्यान ही _JAVA_OPTIONS पर लागू होता है ... जो एक है कि मैं पहले नहीं देखा गया है भुगतान करते हैं।

+0

में मैं कमांड प्रॉम्प्ट से डालने की कोशिश की है, लेकिन इसकी एक त्रुटि- -Djava.net.preferIPv6Stack 'एक आंतरिक या बाहरी कमांड, प्रचलित कार्यक्रम या बैच फ़ाइल के रूप में मान्यता प्राप्त नहीं है फेंकता है। – user27

+0

'जावा' कमांड * ध्यान से * के लिए मैन्युअल प्रविष्टि पढ़ें। यदि आप इसे सही तरीके से उपयोग करते हैं तो '-D' विकल्प काम करेगा। –

+0

मैन्युअल प्रविष्टि मेरे मामले में काम नहीं करती है या हो सकता है कि मैं इसे ठीक से करने में सक्षम न हो, उम्मीद है कि इंजेक्शन काम करता है। thnkx – user27

0

जावा निष्पादन योग्य चलाने से पहले आपको अपने enviorment पथ में डाल देना होगा। linux

export JAVA_OPTS="-Djava.net.preferIPv4Stack=true" (same for ipv6) 
+0

मैं इसे विंडोज मशीन में कर रहा हूं, तो परिवर्तनीय नाम क्या होना चाहिए। – user27

+0

यहां जाएं: मेरा कंप्यूटर -> गुण -> अग्रिम सिस्टम सेटिंग्स -> enviorment चर -> सिस्टम वैरिएबल के तहत नाम JAVA_OPTS और संबंधित मान-डीजावा के साथ एक नया बनाएं ... –

+0

यह ** _ JAVA_OPTIONS ** नहीं JAVA_OPTS – RealHowTo

संबंधित मुद्दे