Компилятор для компиляции других java файлов

Я пытаюсь скомпилировать и запустить java файлы из java-кода. У меня есть скомпилированный класс java, и с этим попробуйте скомпилировать java-код. ниже - мой код, но я не вижу файл *.class в любом бине (в папке eclipse out out put) или в исходном месте. Где мой файл *.class, если мой успех компилятора. Или что случилось с моим кодом? Попытка менее двух способов:

public class CompilerClass { 

 public static void main(String[] args) throws Exception { 

 Process p = Runtime.getRuntime().exec("javac com.java.Compileable.java");
 ProcessBuilder pb = new ProcessBuilder("javac", "com.java.Compileable.java");
 } 
}
3 ответа

а также альтернативу вы можете использовать java-компилятор API

package javacompiler;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
public class COmpilerHello {
 public static void main(String[] args)
 {
 String s="C:/Users/MariaHussain/Desktop/hussi.java";
 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
 int result = compiler.run(System.in,System.out,System.err,s);
 System.out.println("Compile result code = " + result);
 }
}


вы должны указать местоположение файла. Это должно быть что-то вроде этого

public static void main(String[] args) throws Exception { 

 Process p = Runtime.getRuntime().exec("javac C://JavaProject//SomeClass.java");
 ProcessBuilder pb = new ProcessBuilder("javac", "C://JavaProject//SomeClass.java");
}


Проверьте его с файлом, который у вас есть, в том же каталоге, что и ваш CompilerClass

public static void main(String[] args) throws Exception { 

 Process p = Runtime.getRuntime().exec("javac SomeClass.java");
 ProcessBuilder pb = new ProcessBuilder("javac", "SomeClass.java");
}

Прекрасно работает для меня. SomeClass.java находится в том же каталоге, что и CompilerClass

Выйти из командной строки

licensed under cc by-sa 3.0 with attribution.