java一个打印程序_关于运行时:执行从java中的另一个程序打印“hello world”的程序...

我最初编写了一个名为"命令.java"的程序,编译了另一个名为"NeX.java"的程序,它将Hello World打印到控制台。但是在执行命令Java.java之后,我发现它成功地编译了"NeX.java",但没有在控制台上打印"Hello World"。下面是代码:

class New

{

public static void main(String[]args)

{

System.out.println("Hello World");

}

}

import java.io.*;

class Command

{

public static void main(String[]args)throws IOException

{

Runtime r=Runtime.getRuntime();

try

{

Process p=r.exec("cmd pushd C:\\Users\\Admin\\Desktop");

p=r.exec(""E:\\jdk1.7.0_11\\bin\\javac.exe" New.java");

p.waitFor();

p=r.exec(""E:\\jdk1.7.0_11\\bin\\java.exe" New");

p.waitFor();

}

catch(Exception e)

{

System.out.println(e.getMessage());

}

}

}

但是,在对command.java进行了一些更改之后,它工作了…..下面是新的command.java代码:

import java.io.*;

class Command

{

public static void main(String[]args)throws IOException

{

Runtime r=Runtime.getRuntime();

try

{

Process p=r.exec("cmd pushd C:\\Users\\Admin\\Desktop");

p=r.exec(""E:\\jdk1.7.0_11\\bin\\javac.exe" New.java");

p.waitFor();

p=r.exec(""E:\\jdk1.7.0_11\\bin\\java.exe" New");

p.waitFor();

InputStream in= p.getInputStream();

BufferedReader br=new BufferedReader(new InputStreamReader(in));

System.out.println(br.readLine());

}

catch(Exception e)

{

System.out.println(e.getMessage());

}

}

}

现在我的问题是,为什么我以前的command.java程序没有打印hello world,但我的第二个版本工作正常。

每个Java应用程序都在自己的控制台中运行。启动程序时看到的控制台属于command.java。这意味着它只显示command.java的输出,而不显示其他内容。new.java在不同的控制台中运行,在本例中不会显示给您。第二个版本的command.java从new.java读取输出,然后将其打印到自己的控制台。

你需要从Java程序中读取系统命令的输出。因此,你编写的第一个程序没有显示输出。

但是new.java包含system.out.println()语句,因此它应该直接将"hello world"打印到控制台窗口,即命令提示窗口。

默认情况下,创建的子进程没有自己的终端或控制台。它的所有标准I/O(即stdin、stdout、stderr)操作都将重定向到父进程,在父进程中,可以通过使用getOutputstream()、getInputstream()和getErrorstream()方法获取的流访问这些操作。参考链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值