gpt4 book ai didi

java - 使用 BufferedReader 在 java 中读取终端命令的输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:31:49 25 4
gpt4 key购买 nike

新手在 java 刚开始,将不胜感激任何帮助。所以我的代码是这样的,出于某种原因我无法让输出正常工作..我已经坐了几个小时了..

package askisi1;

import java.net.*;
import java.util.*;
import java.lang.*;
import java.io.*;


public class Main{

public static void main(String[] args){

try{

String command = "ifconfig eth1 | grep -oP '[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}'";
Process child = Runtime.getRuntime().exec(command);

System.out.println("So far so good");
BufferedReader r = new BufferedReader(new InputStreamReader(child.getInputStream()));
String s;
while ((s = r.readLine()) != null) {
System.out.println(s);
}
r.close();
System.out.println("Continue..");
}
catch (IOException e) {
e.printStackTrace();
}
}



}

最佳答案

Runtime.exec() 需要一些额外的信息来执行 Unix 命令。

所以,假设我的以太网卡是 lo0:

String[] command = {
"/bin/sh",
"-c",
"ifconfig lo0 | grep -oP '[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}'"
};
Process child = Runtime.getRuntime().exec(command);
// following here your remaining unchanged code

这打印:

So far so good
127.0.0.1
Continue..

关于java - 使用 BufferedReader 在 java 中读取终端命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13000412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com