我想nsupdate
从 java 调用 bash 脚本,以实现一种 DDNS。问题是无论我做什么,nsupdate
都不会接受我正在尝试编写的输入。
这是我目前正在尝试的方式:
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();
}
我尝试了很多方法,但似乎没有任何效果。不幸的是,我不能使用文件作为参数传递,即使到目前为止这种方式效果最好。