【问题标题】:Exception while compiling scala code from Java program从Java程序编译scala代码时出现异常
【发布时间】:2018-08-06 10:16:10
【问题描述】:

我有以下代码在 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());

但我收到此错误:

线程“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)

【问题讨论】:

    标签: java scala scala-compiler


    【解决方案1】:

    试试

        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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 2012-11-14
      • 2021-05-11
      • 1970-01-01
      相关资源
      最近更新 更多