【发布时间】:2012-02-15 19:03:04
【问题描述】:
我在 Windows 上遇到了 Java 6 的一个已知错误。我的理解是,获取网络掩码的正常方法是查找网络前缀长度并进行一些位移。问题是在 Windows 上,前缀长度经常被错误地返回,所以我们得到 128 而我们应该得到 24 或 20。
在this solution中,建议将-Djava.net.preferIPv4Stack=true放在Java命令行中。不幸的是,在 Windows 7 上,将其添加为 VM 参数或 Java 命令行似乎没有任何效果。
(a) 有没有人知道这个问题的任何其他变通办法,可能在 Windows 7 上仍然有效?
(b) 或者,是否有完全不同的方法来获取可靠的网络掩码?
谢谢!
【问题讨论】:
-
奇怪...
-Djava.net.preferIPv4Stack=trueVM 选项在 Windows 7 下适用于 JRE 1.6。我把它作为System.setProperty("java.net.preferIPv4Stack","true")放在我的Java 代码中。除非,某些东西(图书馆或其他)正在重置它。你能显示你的 IP 网络掩码代码吗? -
感谢那行代码。我正在使用 Netbeans,并且有一个放置 VM 选项的地方。我试着把 -D 东西放在那里。不去。我还使用 Advanced Installer 创建的包装器启动应用程序,并且可以放置命令行选项。那也没有用。我将尝试您的建议,在我的主要方法顶部添加该行代码。谢谢!
-
@eee:您介意发布您的答案作为答案,以便我可以给您赏金吗?谢谢。 :)