我们有一个使用主机名连接到不同应用程序的应用程序。 如果我更改运行应用程序的系统的 DNS 服务器,应用程序将开始失败并显示“java.net.UnknownHostException”。 但我可以从系统中使用 FQDN 向不同的应用程序发送 ping 请求。 要使 DNS 服务器更改生效,我们必须重新启动应用程序。
Java 中有什么方法可以在运行时刷新 DNS 服务器详细信息吗?
最佳答案
您可以通过 3 种解决方案关闭 Java 的 dns 缓存:
解决方案 1:
使用此标志启动您的程序:
-Dsun.net.inetaddr.ttl=0
解决方案 2:
在 Java 代码顶部使用 setProperty
java.security.Security.setProperty("networkaddress.cache.ttl" , "0")
解决方案 3:
在$JRE_HOME/lib/security/java.security
中设置:
networkaddress.cache.ttl = 0
networkaddress.cache.negative.ttl = 0
关于java - 有没有办法在运行时刷新Java应用程序的DNS服务器详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53814441/