Для справки: я работал над свинг-приложением (да, я знаю, что оно устарело - оставьте меня в покое), которое позволяет писать, компилировать файл и выводить результат main
указанного файла в JTextArea
Терминале. Теперь я получил JTextArea
в качестве выходного сигнала (System.out
), но я не могу заставить его принять ввод. я видел другой вопрос, который был похож, связанный здесь , и он говорит просто запустить myclass.main
, но я не понимаю его, и он старый, поэтому я не могу ответить. Как лучше всего go об этом?
мой код компиляции:
//This creates a file
public void createAndRun(String fileName, String text){
System.out.println("File: " + fileName);
File file;
try{
file = new File((fileName + ".java"));
FileWriter writer = new FileWriter(file);
writer.write(text);
writer.close();
}catch(IOException e){
e.printStackTrace();
}
try{
runProcess("javac "+fileName+".java");
runProcess("java "+fileName);
}catch(Exception e){
e.printStackTrace();
}
}
//This just runs a process to make the above code easier to read
private static void runProcess(String command) throws Exception{
Process pro;
pro = Runtime.getRuntime().exec(command);
pro.waitFor();
System.out.println(command + " exitValue(): " + pro.exitValue());
}
Чтобы быть понятным: он может запустить любой файл, который имеет дело только с печатью строк кода. Это не проблема. Проблема заключается в вводе. Любая помощь будет принята с благодарностью.