有什么方法可以在运行时刷新Java应用程序的DNS服务器详细信息吗?

时间:2018-12-17 11:35:37

标签: java linux dns fqdn

我们有一个使用主机名连接到不同应用程序的应用程序。 如果更改运行该应用程序的系统的DNS服务器,该应用程序将因“ java.net.UnknownHostException”而开始失败。 但是我可以从系统中使用FQDN将ping请求发送到不同的应用程序。 为了使DNS服务器更改生效,我们必须重新启动应用程序。

Java中有什么方法可以在运行时刷新DNS服务器详细信息?

1 个答案:

答案 0 :(得分:2)

您可以使用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