gpt4 book ai didi

JavaCompiler 无法在 Jar 中运行

转载 作者:行者123 更新时间:2023-12-02 00:28:06 26 4
gpt4 key购买 nike

我有一个 java 程序,它使用 JavaCompiler 生成新的类文件。

我在 eclipse 中使用 jdk 1.6,效果很好。

但是当我将其导出为 jar 文件并且不想编译一些 .java 文件时,它会给我一个空错误(因为系统中没有使用 jre 的编译器?)。有没有办法在 jar 文件中提供编译器?

File fRun = new File("someFile.java");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable<String> options = Arrays.asList( new String[] { "-d", currentDir+"\\bin\\"} );
Iterable<? extends JavaFileObject> compUnits = fileManager.getJavaFileObjects(fRun);
Boolean compRes = compiler.getTask(null, fileManager, null, options, null, compUnits).call();

if(compRes == true){
System.out.println("Compilation has succeeded");
fileManager.close();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Class<?> compiledClass = cl.loadClass(someFile);
cRun = compiledClass;
}else{
System.out.println("Compilation error");
fileManager.close();
throw new Exception("Compilation Error");
}

最佳答案

这会帮助你--> http://weblogs.java.net/blog/kirillcool/archive/2005/05/using_java_comp.html查找“...在常规独立应用程序中编译 Java 源文件的标准技术是使用驻留在 jdk/lib 下的 tools.jar ...”

关于JavaCompiler 无法在 Jar 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9668974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com