Компиляция Java-кода, доступного в строке внутри другого Java-кода
Возможный дубликат:
Оперативная компиляция Java-кода в памяти для Java 5 и Java 6
Компиляция файла Java с кодом из файла Java
У меня есть класс Hello World, доступный в строке программы, как показано в примере ниже,
public class CompileJavaString {
public static void main(String arg[]) {
String s="public class HelloWorld{ public static void main(String arg[]) ";
s=s+" { System.out.println(\"Hello World\"); } } ";
// this is the complete code of Hello World class taken as an example
// code to compile the class Hello World available in string and
// generate the HelloWorld.class file required here
}
}
может кто-нибудь помочь скомпилировать код в строку памяти, доступную в приведенном выше примере
2 ответа
Решение
Вы хотите посмотреть на javax.tools.JavaCompiler
и связанные классы. Документация содержит примеры того, как их использовать.
Обратите внимание, что компилятор java будет работать, только если у вас установлен JDK. JRE недостаточно.
Сохраните как HelloWorld.java и выполните следующие действия:
String fileToCompile = "HelloWorld.java";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilationResult = compiler.run(null, null, null, fileToCompile);
if(compilationResult == 0){
System.out.println("Compilation is successful");
}else{
System.out.println("Compilation Failed");
}
редактировать
Можете взглянуть на подробный пример:
http://www.java2s.com/Code/Java/JDK-6/CompilingfromMemory.htm