Compiler
类提供了与 Java 编译器的交互,允许在运行时动态编译 Java 代码。以下是 JDK 8 中 Compiler
类的部分源代码:
public final class Compiler {
private Compiler() {} // Prevent instantiation
public static boolean compile(File... files) {
return false;
}
public static boolean compile(String... arguments) {
return false;
}
public static Object command(Object... args) {
return null;
}
public static void enable() {
}
public static void disable() {
}
public static boolean isSupported() {
return false;
}
public static void setDefaultFileManager(JavaFileManager fileManager) {
}
public static JavaFileManager getDefaultFileManager() {
return null;
}
public static void setTaskListener(TaskListener taskListener) {
}
public static TaskListener getTaskListener() {
return null;
}
public static int run(InputStream in, OutputStream out, OutputStream err, String... arguments) {
return 0;
}
public static int run(InputStream in, OutputStream out, OutputStream err, String[] arguments, String... command) {
return 0;
}
}
Compiler
类提供了一些静态方法,可以用于编译 Java 源代码。然而,在实际使用中,通常不会直接使用 Compiler
类,而是使用诸如 JavaCompiler
接口和 javax.tools
包中的工具类来执行编译操作。Compiler
类的方法大多数是为了与早期版本的 Java 兼容性而保留的,并不常用。