如何配置java应该在jdk 9、10和11中使用的DNS服务器
为了进行测试,我们有一个DNS服务器,它将用虚拟记录进行响应。以前,我们可以通过以下方式让java使用我们的DNS服务器(这里它只是使用本地主机):如何配置java应该在jdk 9、10和11中使用的DNS服务器,java,dns,java-9,java-11,Java,Dns,Java 9,Java 11,为了进行测试,我们有一个DNS服务器,它将用虚拟记录进行响应。以前,我们可以通过以下方式让java使用我们的DNS服务器(这里它只是使用本地主机): "-Dsun.net.spi.nameservice.nameservers=127.0.0.1", "-Dsun.net.spi.nameservice.provider.1=dns,sun", 这在jdk11下不再有效。 是否可以指定要在jdk11下使用的DNS服务器?如果是,怎么做 编辑: 我还试图: -Djava.naming.provi
"-Dsun.net.spi.nameservice.nameservers=127.0.0.1",
"-Dsun.net.spi.nameservice.provider.1=dns,sun",
这在jdk11下不再有效。
是否可以指定要在jdk11下使用的DNS服务器?如果是,怎么做
编辑:
我还试图:
-Djava.naming.provider.url=dns://127.0.0.1
来自,但也不起作用。已不支持定义替代DNS服务器: 对于测试,您应该使用可由
-Djdk.net.hosts.file=path_to_alternative_hosts_file
JVM选项定义的备用主机文件
例如,如果您在D:\test\hosts
10.20.30.40 google.com www.google.com
public static void main(String[] args) throws UnknownHostException {
InetAddress address = InetAddress.getByName("google.com");
System.out.println(address);
}
使用-Djdk.net.hosts.file=D://test/hosts运行此代码
10.20.30.40 google.com www.google.com
public static void main(String[] args) throws UnknownHostException {
InetAddress address = InetAddress.getByName("google.com");
System.out.println(address);
}
将打印:
google.com/10.20.30.40
这个“功能”在JDK 9中被删除了,下面是关于这个问题的发布说明:为了解决这个问题,我建议您在机器级别设置DNS服务器,而不是在java中更新它。@AlanBateman所以这是不可能的,请您把它作为这个问题的答案。