3

可能重复:
Java 5 和 Java 6 的动态内存中 Java 代码编译 使用
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
  }  

}

有人可以帮助在上面给出的示例中可用的内存字符串中编译代码吗

4

2 回答 2

1

你想看看javax.tools.JavaCompiler和相关的类。该文档包含如何使用它们的示例。

请注意,java 编译器只有在您安装了 JDK 时才能工作。一个 JRE 是不够的。

于 2013-02-03T13:05:11.503 回答
0

另存为 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

于 2013-02-03T13:07:04.400 回答