我正在尝试将我的 java 代码移植到纯 scala,因此在这方面的任何帮助将不胜感激。
下面的代码首先将我的业务逻辑转换为 java 代码。在这里,我使用 freemarker 模板进行基于模板的代码生成。创建文件后,我使用 java 编译器编译代码并创建一个 jar 文件,该文件保存在一个临时目录中
我目前正在使用javax.tools.*
提供运行时编译的包。与该方法等效的 Scala 是什么?我想使用 freemarker 模板生成纯 Scala 代码,然后运行 Scala 编译来创建一个 jar 文件。
下面是我用来实现这一点的示例 Java 代码。
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
Iterable<? extends JavaFileObject> compilationUnits = Arrays.asList(javaFileObjects);
StringBuilder builder = new StringBuilder();
builder.append(service.getConfig().getProp("coreLib"));
builder.append(";" +result.getCodeContext().getOmClasspath());
builder.append(";" +jarBuilder.toString());
builder.append(";" +service.getConfig().getProp("tempCodeGen"));
String[] compileOptions = new String[]{"-d", result.getCodeContext().getOmClasspath(),"-cp",builder.toString()} ;
Iterable<String> compilationOptionss = Arrays.asList(compileOptions);
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
CompilationTask compilerTask = compiler.getTask(null, stdFileManager, diagnostics, compilationOptionss, null, compilationUnits) ;
boolean status = compilerTask.call();