javax.tools编译生成jar

javax.tools compiler generate jar

目前我编译我的 java 源文件:

ArrayList<String> optionList = new ArrayList<String>();
String testpath = System.getProperty("java.class.path") + convertJarFilesToClassPath(getJarFiles());
optionList.addAll(Arrays.asList("-classpath", testpath));
optionList.addAll(Arrays.asList("-d", this.outputDir+"\bin"));

ArrayList<File> files1 =  getSourceFiles();
Iterable<? extends JavaFileObject> compilationUnits1 = fileManager.getJavaFileObjectsFromFiles(files1);
JavaCompiler.CompilationTask task = compiler.getTask(null ,fileManager ,null , optionList, null, compilationUnits );
boolean compiled = task.call();

然后我得到我的 .class 文件正确编译,但我还想生成一个 jar 文件。 我不熟悉 JavaCompiler,我使用 jdk 7.

我必须做什么才能告诉 javax.tools.JavaCompiler 生成 jar 文件?

javax.tools.JavaCompilerjavac 仅编译 类 并生成 .class 文件。

要将已编译的 类 捆绑到一个 JAR 文件中,您可以使用 JarOutputStream。这是一个tutorial.