From 20ed0dfb52c8d1ebc7a060e7bba65a491313fe69 Mon Sep 17 00:00:00 2001 From: chentaisen <14615430+chentaisen@user.noreply.gitee.com> Date: Sun, 1 Sep 2024 19:09:07 +0800 Subject: [PATCH] Changes --- .../muyu/rule/compile/CompileJavaFile.java | 53 +++++++++++++++++++ .../java/com/muyu/rule/test/UploadOss.java | 4 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 muyu-rule-server/src/main/java/com/muyu/rule/compile/CompileJavaFile.java diff --git a/muyu-rule-server/src/main/java/com/muyu/rule/compile/CompileJavaFile.java b/muyu-rule-server/src/main/java/com/muyu/rule/compile/CompileJavaFile.java new file mode 100644 index 0000000..7ef6286 --- /dev/null +++ b/muyu-rule-server/src/main/java/com/muyu/rule/compile/CompileJavaFile.java @@ -0,0 +1,53 @@ +package com.muyu.rule.compile; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class CompileJavaFile { + // 假设我们要编译的Java文件在同一目录下,文件名为"HelloWorld.java" + String javaFileName = "HelloWorld.java"; + // 编译后的类文件将具有相同的名称,但扩展名为".class" + String classFileName = javaFileName.substring(0, javaFileName.lastIndexOf('.')) + ".class"; + + // 设置编译命令 + // 注意:这里假设JDK的bin目录已经添加到了系统的PATH环境变量中 + // 如果没有,你需要指定javac命令的完整路径,例如:"C:\\Program Files\\Java\\jdk-xx\\bin\\javac" + ProcessBuilder processBuilder = new ProcessBuilder( + "javac", + javaFileName + ); + + + public ProcessBuilder getProcessBuilder() { + // 启动编译过程 + try { + Process process = processBuilder.start(); + + // 读取编译过程的输出(如果有的话) + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println("Output: " + line); + } + + + // 等待编译过程结束 + int exitCode = process.waitFor(); + if (exitCode == 0) { + System.out.println("Compilation successful. Class file created: " + classFileName); + } else { + // 读取编译错误(如果有的话) + BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream())); + while ((line = errorReader.readLine()) != null) { + System.err.println("Error: " + line); + } + System.out.println("Compilation failed."); + } + + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + return processBuilder; + } +} diff --git a/muyu-rule-server/src/main/java/com/muyu/rule/test/UploadOss.java b/muyu-rule-server/src/main/java/com/muyu/rule/test/UploadOss.java index 2361f6a..200c32f 100644 --- a/muyu-rule-server/src/main/java/com/muyu/rule/test/UploadOss.java +++ b/muyu-rule-server/src/main/java/com/muyu/rule/test/UploadOss.java @@ -39,7 +39,7 @@ public class UploadOss { OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 上传到OSS后文件保存的目录,例如:folder/subfolder/,最后以斜杠结尾 - String objectName = "rule/"+fileName+".java"; + String objectName = fileName+".java"; try { // 将内容转换为字节数组输入流 @@ -51,6 +51,8 @@ public class UploadOss { // 执行上传操作 ossClient.putObject(putObjectRequest); + + return Result.success(null,"文件"+fileName+".java"+"存储成功"); } catch (Exception e) {