Я изначально написал программу с именем «Command.java», которая компилирует другую программу с именем «New.java», которая, в свою очередь, печатает мир привет на консоль. Но после выполнение Command.java, я обнаружил, что он успешно скомпилирован "New.java", но не печатать "Привет мир" в console.Here являются коды: -Выполните программу, которая печатает «hello world» из другой программы в java
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, но моя вторая версия работала.
Но New.java содержит инструкцию System.out.println(), поэтому он должен печатать «Hello world» непосредственно в окне консоли. Окно командной строки i.e – Gunjan
По умолчанию созданный подпроцесс не имеет собственного терминала или консоли. Все его стандартные операции ввода-вывода (т. Е. Stdin, stdout, stderr) будут перенаправлены на родительский процесс, где к ним можно получить доступ через потоки, полученные с помощью методов getOutputStream(), getInputStream() и getErrorStream(). обратитесь [link] (http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html) – Jaipal