如何配置java应该在jdk 9、10和11中使用的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

为了进行测试,我们有一个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.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所以这是不可能的,请您把它作为这个问题的答案。