จะบังคับให้ Java ใช้ IPv4 แทน IPv6 ได้อย่างไร


39

ปลั๊กอินเบราว์เซอร์ Java ของฉันไม่ทำงานอีกต่อไป เมื่อฉันเปิดเพจที่มีองค์ประกอบ Java, Java ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์

หลังจากการตรวจสอบฉันพบว่า Java พยายามใช้ IPv6 ในขณะที่เครือข่ายของฉันไม่รองรับ IPv6 ดังนั้น Java จึงล้มเหลวในการเชื่อมต่อเสมอ

ฉันลองค้นหา Google และพบว่าฉันควรใช้งาน Java ด้วย-Djava.net.preferIPv4Stack=trueแต่ฉันจะส่งต่อไปยังเบราว์เซอร์ได้อย่างไร

ฉันใช้ Google Chrome และ Java 7 update 5


ทำไมคุณไม่ปิดการใช้งานโปรโตคอล IPv6 ดังนั้น Java จะไม่มีตัวเลือกนี้
harrymc

มันเป็นเรื่องเก่าฉันไม่ทราบว่าฉันปิดการใช้งานโปรโตคอล IPv6 ดูเหมือนว่าฉันลืมสิ่งที่ฉันจำได้คือฉันลบ Java 7 และแทนที่ด้วย Java 6
nyongrand

1
ปิดการใช้งานเป็นเรื่องง่าย: เห็นนี้
harrymc

@harrymc คัดลอกเนื้อหาเสมอ: ลิงค์นั้นตาย
javadba

@javadba: ลิงค์ไม่เคยตาย: ดูเครื่อง Waybackแต่มันล้าสมัย google ดีกว่า "ปิดการใช้งาน IPv6 บน Windows" สำหรับผลลัพธ์ครึ่งล้าน
harrymc

คำตอบ:


66

ใส่ตัวเลือกใน_JAVA_OPTIONSตัวแปรสภาพแวดล้อม วิธีการทำเช่นนี้ได้อธิบายไว้แล้วในโพสต์อื่น ๆ - แม้ว่าพวกเขามักจะพูดคุยเกี่ยวกับการตั้งค่าPATHแต่มันก็เหมือนกัน

ตัวอย่างเช่นบน Linux ใส่สิ่งต่อไปนี้ใน~/.profileหรือของคุณ~/.bash_profile:

export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"

1
ตกลงขอบคุณสำหรับคำตอบของคุณแม้ว่าฉันจะใช้ windows แต่วิธีการแก้ปัญหาของคุณเป็นแรงบันดาลใจฉันขอบคุณ
nyongrand

1
ดูตัวอย่างโพสต์นี้สำหรับการตั้งค่าตัวแปรสภาพแวดล้อม: superuser.com/questions/284342/…
2428118

1
ทำไม Java 'ชอบ' IPV6 ดูเหมือนว่าจะทำลายรหัสที่ใช้งานได้
Ribo

วิธีการตั้งค่าใน Windows
Adnan Ali

1
@Ribo: ตามค่าเริ่มต้น Java ใช้ IPv6 แบบดูอัลสแต็คเมื่อเป็นไปได้กล่าวคือใช้ซ็อกเก็ต IPv6 ที่รองรับที่อยู่ IPv4 ซ็อกเก็ตเหล่านี้ยังคงเข้ากันได้กับแอปพลิเคชั่น IPv4 โดยใช้ที่อยู่ที่แมป IPv4 ดังนั้นนี่คือพฤติกรรมที่เข้ากันได้แบบย้อนหลัง
ดร. Koutheir Attouchi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.