java - 从Java程序编译scala代码时出现异常
问题描述
我有以下代码在运行时在 Java 程序中编译 scala 代码
Settings s = new Settings();
Global g = new Global(s);
Global.Run run = g.new Run();
List<String> files = new LinkedList<>();
files.add("src/main/java/scala/rules/ScalaRuleBasedStrategy.scala");
run.compile(JavaConverters.asScalaBufferConverter(files)
.asScala().toList());
但我收到此错误:
线程“主”java.lang.NoSuchMethodError 中的异常:scala.tools.nsc.Global$gen$.mkBlock(Lscala/collection/immutable/List;)Lscala/reflect/internal/Trees$Tree; 在 scala.tools.nsc.ast.parser.TreeBuilder.makeBlock(TreeBuilder.scala:110) 在 scala.tools.nsc.ast.parser.Parsers$Parser.block(Parsers.scala:1689)
解决方案
尝试
Settings s = new Settings();
MutableSettings.BooleanSetting usejavacp = s.usejavacp(); // added
usejavacp.value_$eq(true); // added
Global g = new Global(s);
Global.Run run = g.new Run();
List<String> files = new LinkedList<>();
files.add("src/main/java/scala/rules/ScalaRuleBasedStrategy.scala");
run.compile(JavaConverters.asScalaBufferConverter(files)
.asScala().toList());
推荐阅读
- c# - 如何从 json 中删除根节点?
- amazon-web-services - dynamodb 可以根据它保存的某些数据行发送到 sns
- amazon-web-services - 接收错误属性验证失败:[属性值 {/TableInput/ViewOriginalText} 与类型 {String} 不匹配] AWS cloudformation
- html - Excel VBA宏用单元格中的粗体文本替换Html粗体标记
- java - mysqld:无法读取 '/etc/mysql/conf.d/' 的目录(操作系统 errno 13 - 权限被拒绝)
- javascript - 查询参数在车把中不起作用
- c - 当结构足够大时,为什么 malloc 顺序很重要?
- python - 导入多个子目录/模块,就好像它们只是一个模块一样
- java - 如何将此迭代语句转换为递归语句?
- reactjs - 为什么我的样式化组件悬停效果不起作用