Я столкнулся с известной ошибкой в Java 6 в Windows. Насколько я понимаю, обычный способ получить маску сети - это посмотреть длину префикса сети и сделать несколько битовых сдвигов. Проблема в том, что в Windows длина префикса часто возвращается неверно, поэтому мы получаем 128, когда мы должны получить 24 или 20.
В в этом решении предлагается поставить -Djava.net.preferIPv4Stack=true
в командной строке Java. К сожалению, в Windows 7 добавление этого параметра в качестве параметра виртуальной машины или командной строки Java, похоже, не имеет никакого эффекта.
(a) Кто-нибудь знает ДРУГИЕ обходные пути для этой проблемы, которые могут все еще работать в Windows 7?
(b) В качестве альтернативы, есть ли совершенно другой способ получить надежную сетевую маску?
Спасибо!
P.S. Вот отчет об ошибке, относящийся к этому .