Я пытаюсь создать программу, которая компилирует код Java, помещенный в код текстовой области, а затем запускает ее. Я застрял на выводе сообщений об ошибках и результатах запуска созданного файла в JTextArea, называемый «вывод». Я хочу, чтобы это было похоже на Eclipse или Jcreator, где компилятор или ошибки времени выполнения отображаются в области «вывода» и System.out.println отображают строки в области «выхода». Прямо сейчас, когда я выключаю результаты запуска файла, я получаю сообщение в текстовой области «вывод», такой как java.io.fileinputstream@96e380c < /p>
Любая помощь будет ценится. Вот код только для кнопки «Запустить» < /p>
btnRun.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// write non-lambda file
try {
nonLambda = new File("nonLambda.java");
BufferedWriter writer = new BufferedWriter(new FileWriter(nonLambda));
writer.write(nLambdaTA.getText());
writer.close();
} catch (Exception ex) {
ex.printStackTrace();
}
// compile non-lambda file
try {
Process compile = Runtime.getRuntime().exec("javac nonLambda.java");
output.setText(compile.getErrorStream().toString());
} catch(Exception e3) {
output.setText(e3.toString());
}
// run non-lambda file
try {
Process run = Runtime.getRuntime().exec("java -cp " +
nonLambda.getParent()+nonLambda.getName());
output.setText(run.getErrorStream().toString());
//output.append("\n"+run.getOutputStream().toString());
BufferedReader br = new BufferedReader(new InputStreamReader(run.getInputStream()));
String ch = new String();
while((ch=br.readLine())!=null)
output.append(ch+"\n");
} catch (Exception e4) {
output.append("\n" + e4.toString());
}
}
< /code>
}); < /p>
Подробнее здесь: https://stackoverflow.com/questions/242 ... and-output