Changes
parent
9adea7261f
commit
20ed0dfb52
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue