从Java程序编译scala代码时发生异常

从Java程序编译scala代码时发生异常,java,scala,scala-compiler,Java,Scala,Scala Compiler,我有以下代码在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

我有以下代码在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());
Settings=新设置();
全局g=新的全局;
Global.Run=g.new Run();
列表文件=新建LinkedList();
add(“src/main/java/scala/rules/ScalaRuleBasedStrategy.scala”);
编译(JavaConverters.asScalaBufferConverter(文件)
.asScala().toList());
但我得到了这个错误:

线程“main”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());
Settings=新设置();
MutableSettings.BooleanSetting usejavacp=s.usejavacp();//补充
usejavacp.value_$eq(true);//补充
全局g=新的全局;
Global.Run=g.new Run();
列表文件=新建LinkedList();
add(“src/main/java/scala/rules/ScalaRuleBasedStrategy.scala”);
编译(JavaConverters.asScalaBufferConverter(文件)
.asScala().toList());