feat():测试
parent
8cc215d549
commit
e965382c3b
|
@ -25,12 +25,11 @@ public class OSSFileCompile{
|
|||
public static Result<Object> compile(String source){
|
||||
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
||||
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
|
||||
String[] strings = {"-classpath","home/","-verbose","-d", "home/", source };
|
||||
// 执行编译任务
|
||||
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(source));
|
||||
Boolean result = compiler.getTask(null, fileManager, null, Arrays.asList("-cp", "/home/lib"), null, compilationUnits).call();
|
||||
// int result = compiler.run(null, null, null, source);
|
||||
int result = compiler.run(null, null, null, strings);
|
||||
// 检查编译结果
|
||||
if (result) {
|
||||
if (result == 0) {
|
||||
System.out.println("编译成功,生成的.class文件位于源代码同目录");
|
||||
return Result.success("编译成功,生成的.class文件位于源代码同目录");
|
||||
} else {
|
||||
|
@ -39,4 +38,21 @@ public class OSSFileCompile{
|
|||
}
|
||||
}
|
||||
|
||||
// public static Result<Object> compile(String source){
|
||||
// JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
||||
// StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
|
||||
// // 执行编译任务
|
||||
// Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(source));
|
||||
// Boolean result = compiler.getTask(null, fileManager, null, Arrays.asList("-cp", "/home/lib"), null, compilationUnits).call();
|
||||
//// int result = compiler.run(null, null, null, source);
|
||||
// // 检查编译结果
|
||||
// if (result) {
|
||||
// System.out.println("编译成功,生成的.class文件位于源代码同目录");
|
||||
// return Result.success("编译成功,生成的.class文件位于源代码同目录");
|
||||
// } else {
|
||||
// System.out.println("编译失败");
|
||||
// return Result.error("编译失败");
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
@ -80,27 +80,22 @@ public class OSSFileLoad {
|
|||
}
|
||||
//对路径里的.java文件进行编译
|
||||
System.out.println("第一步");
|
||||
// OSSFileCompile.compile("home/"+fileName);
|
||||
SourceCodeCompiler.javaCompilerPath("home/");
|
||||
System.out.println("第二步");
|
||||
File outputDir = new File("home/"); // 或者是你指定的其他输出目录
|
||||
System.out.println("第三步");
|
||||
File[] classFiles = outputDir.listFiles(); // 获取输出目录中的所有文件
|
||||
if (classFiles != null) {
|
||||
for (File classFile : classFiles) {
|
||||
if (classFile.getName().endsWith(".class")) {
|
||||
System.out.println("找到class文件 " + classFile.getName());
|
||||
|
||||
// 把.class文件存入oss中
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}else {
|
||||
System.out.println("没有找到文件");
|
||||
}
|
||||
OSSFileCompile.compile("home/"+fileName);
|
||||
// SourceCodeCompiler.javaCompilerPath("home/");
|
||||
// System.out.println("第二步");
|
||||
// File outputDir = new File("home/"); // 或者是你指定的其他输出目录
|
||||
// System.out.println("第三步");
|
||||
// File[] classFiles = outputDir.listFiles(); // 获取输出目录中的所有文件
|
||||
// if (classFiles != null) {
|
||||
// for (File classFile : classFiles) {
|
||||
// if (classFile.getName().endsWith(".class")) {
|
||||
// System.out.println("找到class文件 " + classFile.getName());
|
||||
//// 把.class文件存入oss中
|
||||
// }
|
||||
// }
|
||||
// }else {
|
||||
// System.out.println("没有找到文件");
|
||||
// }
|
||||
return Result.success(source);
|
||||
}
|
||||
|
||||
|
|
|
@ -60,9 +60,9 @@ public class SourceCodeCompiler {
|
|||
try {
|
||||
//通过源文件获取到想要编译的java类源代码迭代器,包括所有的内部类,其中每一个类都是一个JavaFileObjects,也被称为一个汇编单元
|
||||
Iterable<? extends JavaFileObject> javaFileObjects = fileManager.getJavaFileObjects(file);
|
||||
String[] strings = {"-classpath","home/","-verbose","-d", "home/"};
|
||||
List<Object> list = Arrays.asList("-classpath","home","-verbose","-d", "home/",javaFileObjects);
|
||||
//生成编译任务
|
||||
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, List.of(strings), null, javaFileObjects);
|
||||
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, Arrays.asList("-d","home/"), null, javaFileObjects);
|
||||
//执行编译任务
|
||||
task.call();
|
||||
}catch (Exception e){
|
||||
|
|
Loading…
Reference in New Issue