首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java调用nsupdate

从java调用nsupdate
EN

Stack Overflow用户
提问于 2020-07-20 03:08:00
回答 2查看 75关注 0票数 0

我想从java中调用bash脚本nsupdate,以便实现一种动态域名系统。问题是,无论我做什么,nsupdate都不会接受我试图编写的输入。

这是我目前正在尝试的方法:

代码语言:javascript
复制
    public static void main(String[] args) throws IOException, InterruptedException {
        
        ProcessBuilder builder = new ProcessBuilder("nsupdate", "-i");
        builder.redirectOutput(ProcessBuilder.Redirect.PIPE);
        Process process = builder.start();

        BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
        BufferedReader error = new BufferedReader(new InputStreamReader(process.getErrorStream()));

        PrintWriter w = new PrintWriter(process.getOutputStream());
        w.println("server 127.0.0.1\r");
        w.println("update delete sub.domain.dev. A\r");
        w.println("update add sub.domain.dev. 2 A 12.23.45.56\r");
        w.println("send\r");
        w.println("quit\r");

        process.waitFor(10, TimeUnit.SECONDS);
        
        process.destroy();
        

    }

我已经尝试了很多方法,但似乎都不起作用。不幸的是,我不能使用文件作为参数传递,尽管到目前为止这种方式工作得最好。

EN

回答 2

Stack Overflow用户

发布于 2020-07-20 03:41:47

我认为您还需要重定向流程输入:

代码语言:javascript
复制
builder.redirectInput(ProcessBuilder.Redirect.PIPE);
票数 1
EN

Stack Overflow用户

发布于 2020-07-20 03:45:48

我意识到我需要在每次命令后刷新输出流。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62984533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档