Tôi đã gặp phải lỗi đã biết với Java 6 trên Windows. Sự hiểu biết của tôi là cách bình thường để có được mặt nạ mạng là tìm kiếm chiều dài tiền tố mạng và thực hiện một số thay đổi bit. Vấn đề là trên Windows chiều dài prefix thường trở lại không đúng cách, vì vậy chúng tôi có được một 128 khi chúng ta sẽ nhận được một 24 hoặc 20.Java & Windows 7: Nhận được netmask IPv4 đáng tin cậy?
Trong this solution, nó được đề nghị để đưa -Djava.net.preferIPv4Stack=true
trên dòng lệnh Java. Thật không may, trên Windows 7, thêm rằng như là một tham số VM hoặc trên dòng lệnh Java dường như không có hiệu lực.
(a) Có ai biết bất kỳ công việc nào xung quanh vấn đề này có thể vẫn hoạt động trên Windows 7 không?
(b) Ngoài ra, có cách nào khác hoàn toàn để có mặt nạ mạng đáng tin cậy không?
Cảm ơn!
P.S. Here is the bug report that pertains to this.
Nghi thức đúng đắn quy định rằng tôi liệt kê các địa điểm khác mà tôi đã đặt câu hỏi này: http://stackoverflow.com/questions/9299566/java-windows-7-reliably-getting-ipv4-netmask http: // www. codeguru.com/forum/showthread.php?t=521196 https://forums.oracle.com/forums/thread.jspa?threadID=2347643&tstart=0 http://www.coderanch.com/t/567601/ socket/java/Java-Windows-Đáng tin cậy-nhận-IPv –
Lạ ... tùy chọn '-Djava.net.preferIPv4Stack = true' VM hoạt động trong trường hợp của tôi trong Windows 7 cho JRE 1.6. Tôi đặt điều này trong mã Java của tôi là 'System.setProperty (" java.net.preferIPv4Stack "," true ")'. Trừ khi, một cái gì đó (thư viện hoặc bất cứ điều gì) là đặt lại nó. Bạn có thể hiển thị mã netmask IP của mình không? – ecle
Cảm ơn dòng mã đó. Tôi đang sử dụng Netbeans, và có một nơi để đưa các tùy chọn VM. Tôi đã thử đặt thứ -D ở đó. Không đi. Tôi cũng đang khởi chạy ứng dụng bằng cách sử dụng trình bao bọc được tạo bởi Trình cài đặt nâng cao và có nơi để đặt các tùy chọn dòng lệnh. Điều đó cũng không hiệu quả. Tôi sẽ thử đề xuất của bạn, thêm dòng mã đó vào đầu phương thức chính của tôi. Cảm ơn! –