This commit is contained in:
Looly
2020-11-29 15:56:07 +08:00
parent b2ee5fbfec
commit 2f7cd18895

View File

@@ -1,6 +1,7 @@
package cn.hutool.core.compiler; package cn.hutool.core.compiler;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
@@ -159,14 +160,17 @@ public class JavaSourceCompiler {
final DiagnosticCollector<? super JavaFileObject> diagnosticCollector = new DiagnosticCollector<>(); final DiagnosticCollector<? super JavaFileObject> diagnosticCollector = new DiagnosticCollector<>();
final List<JavaFileObject> javaFileObjectList = getJavaFileObject(); final List<JavaFileObject> javaFileObjectList = getJavaFileObject();
final CompilationTask task = CompilerUtil.getTask(javaFileManager, diagnosticCollector, options, javaFileObjectList); final CompilationTask task = CompilerUtil.getTask(javaFileManager, diagnosticCollector, options, javaFileObjectList);
try{
if (task.call()) { if (task.call()) {
// 加载编译后的类 // 加载编译后的类
return javaFileManager.getClassLoader(StandardLocation.CLASS_OUTPUT); return javaFileManager.getClassLoader(StandardLocation.CLASS_OUTPUT);
} else { }
} finally {
IoUtil.close(javaFileManager);
}
//编译失败,收集错误信息 //编译失败,收集错误信息
throw new CompilerException(DiagnosticUtil.getMessages(diagnosticCollector)); throw new CompilerException(DiagnosticUtil.getMessages(diagnosticCollector));
} }
}
/** /**
* 获得编译源码时需要的classpath * 获得编译源码时需要的classpath