以编程方式编译.java文件

-3 java compilation

我想要什么?

我想创建一个程序,可以将.java文件编译为.class文件,就像在本网站上完成一样: 创新网站

我有什么问题?

  • 有没有可以用来做这个的图书馆?
  • 我在哪里可以获得这个图书馆?
  • 如果没有这个库,那我该怎么办呢?

lau*_*une 5

   JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
Run Code Online (Sandbox Code Playgroud)

JavaCompiler的javadoc显示了如何使用此JDK工具进行工作和编译.那里有一个片段:

   File[] files1 = ... ; // input for first compilation task

   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);

   Iterable<? extends JavaFileObject> compilationUnits1 =
       fileManager.getJavaFileObjectsFromFiles(Arrays.asList(files1));
   compiler.getTask(null, fileManager, null, null, null, compilationUnits1).call();
Run Code Online (Sandbox Code Playgroud)

这绝不是一项简单的任务.但是通过shell调用Java编译器的一般方法(包括所有修剪)也不容易,因此,这也适用于通过Process调用.