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.JavaCompiler
和 javac
仅编译 类 并生成 .class
文件。
要将已编译的 类 捆绑到一个 JAR 文件中,您可以使用 JarOutputStream
。这是一个tutorial.
目前我编译我的 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.JavaCompiler
和 javac
仅编译 类 并生成 .class
文件。
要将已编译的 类 捆绑到一个 JAR 文件中,您可以使用 JarOutputStream
。这是一个tutorial.