Я создаю приложение типа редактора, в котором я хочу компилировать и запускать (конечно, создавать, редактировать, открывать также) файлы C, C ++ и Java;
Я создаю его на Java.
Теперь для компиляции и запуска я беру весь путь к файлу
и компиляция и запуск по этому полному пути.
например.
compileFileCommand = javac /media/disk/eclipse/\/UniversalIDE/Java/FirstJava.java
try
{
System.out.println("Compiling Java File");
Process compileProcess = Runtime.getRuntime().exec(compileFileCommand);
compileProcess.waitFor();
String line = "";
BufferedReader bri = new BufferedReader(new InputStreamReader(compileProcess.getInputStream()));
BufferedReader bre = new BufferedReader(new InputStreamReader(compileProcess.getErrorStream()));
while ((line = bri.readLine()) != null)
{
System.out.println(line);
}
bri.close();
while ((line = bre.readLine()) != null)
{
System.out.println(line);
}
bre.close();
compileProcess.waitFor();
System.out.println("Done Java Compile.");
} catch (Exception e)
{
// TODO: handle exception
System.out.println("Exception in Java Compile. ");
System.out.println(e.getMessage());
}
Приведенный выше код прекрасно работает и создает файл класса в месте расположения файла Java. Но bri.readLine () всегда содержит ноль.
Для запуска Java-файла
runFileCommand = java /media/disk/eclipse/\/UniversalIDE/Java/FirstJava
И для запуска файлов C & CPP та же процедура
Для компиляции C
String compileFileCommand = "gcc " + fileNameWithFullPath;
Для C Running
String runFileCommand = "./" + fileNameWithFullPath.split(".c")[0];
Для составления CPP
String compileFileCommand = "g++ " + fileNameWithFullPath;
Для запуска CPP
String runFileCommand = "./" + fileNameWithFullPath.split(".cpp")[0];
Я использую тот же код, который использовался для компиляции Java-файла, но в результате он ничего не дает, а bri.readLine () все время выдает null.
Пожалуйста, помогите мне решить эту проблему и, пожалуйста, дайте мне любое предложение по моей заявке.