master
chentaisen 2024-09-01 19:09:07 +08:00
parent 9adea7261f
commit 20ed0dfb52
2 changed files with 56 additions and 1 deletions

View File

@ -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;
}
}

View File

@ -39,7 +39,7 @@ public class UploadOss {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 上传到OSS后文件保存的目录例如folder/subfolder/,最后以斜杠结尾 // 上传到OSS后文件保存的目录例如folder/subfolder/,最后以斜杠结尾
String objectName = "rule/"+fileName+".java"; String objectName = fileName+".java";
try { try {
// 将内容转换为字节数组输入流 // 将内容转换为字节数组输入流
@ -51,6 +51,8 @@ public class UploadOss {
// 执行上传操作 // 执行上传操作
ossClient.putObject(putObjectRequest); ossClient.putObject(putObjectRequest);
return Result.success(null,"文件"+fileName+".java"+"存储成功"); return Result.success(null,"文件"+fileName+".java"+"存储成功");
} catch (Exception e) { } catch (Exception e) {