Компиляция 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

Другие вопросы по тегам