java - 有没有办法在运行时刷新Java应用程序的DNS服务器详细信息?

标签 java linux dns fqdn

我们有一个使用主机名连接到不同应用程序的应用程序。 如果我更改运行应用程序的系统的 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/

相关文章:

python - 使用 BOTO3 检索 EC2 实例的公共(public) DNS

java - 如何根据json数组长度在对话框中添加动态复选框?

java - 我应该为android中的类中的计算字段定义属性或函数吗?

c++ - 根据鼠标和键盘交互检测计算机是否空闲

python - 如何从html调用python程序

dns - Kerberos 完全限定域名

php - DNS 在 PHP 中不工作(但一般情况下可以)

java - 将数组与子类链接

java - Java 7 有哪些新特性

java - 在 centos 中为 Oracle JDBC jar 设置类路径