java代码输出_执行外部Java代码并获取输出

我想从另一个Java程序中执行Java CLI程序并获取CLI程序的输出。我尝试了两种不同的实现(使用runtime.exec()和ProcessBuilder)并且它们不起作用。

这是奇特的部分; 实现工作(捕获输出)以执行pwd之类的命令但由于某种原因它们没有捕获用java Hello执行的Hello World java程序的输出。

执行代码:

public static void executeCommand(String command)

{

System.out.println("Command: \"" + command + "\"");

Runtime runtime = Runtime.getRuntime();

try

{

Process process = runtime.exec(command);

BufferedReader stdInput = new BufferedReader(new

InputStreamReader(process.getInputStream()));

BufferedReader stdError = new BufferedReader(new

InputStreamReader(process.getErrorStream()));

// read the output from the command

System.out.println("Standard output of the command:\n");

String s = null;

while ((s = stdInput.readLine()) != null) {

System.out.println(s);

}

// read any errors from the attempted command

System.out.println("Standard error of the command (if any):\n");

while ((s = stdError.readLine()) != null) {

System.out.println(s);

}

} catch (Exception e)

{

e.printStackTrace();

}

}

示例输出

Command: "cd /Users/axelkennedal/Desktop && java Hello"

Standard output of the command:

Standard error of the command (if any):

Command: "pwd"

Standard output of the command:

/Users/axelkennedal/Dropbox/Programmering/Java/JavaFX/Kode

Standard error of the command (if any):

我已经确认Hello确实在从CLI直接运行Hello而不是executeCommand()时向CLI打印“Hello world”。

Hello world

public class Hello

{

public static void main(String[] args)

{

System.out.println("Hello world!");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值