如何使用java执行scala代码

时间:2017-05-10 05:50:26

标签: java scala

我是scala的新手。我需要使用java来执行scala类。

我的确切要求是:我需要将整个scala类(文件)作为参数传递给java jarjar应该读取scala代码并执行它。我搜索了很多网站,但没有找到合适的答案。有没有办法做同样的事情?

先谢谢你。

2 个答案:

答案 0 :(得分:1)

除了你这样做的动机,它肯定是可能的(我使用我的IDE - sbt项目做到了) 我刚刚创建了scala类,如下所示:

import com.google.common.base.Objects

class Car(_color: String, _valid: Boolean) {
  val color: String = _color
  val valid: Boolean = _valid

  override def toString = Objects.toStringHelper(this).add("color",color).add("valid", valid).toString
}

之后我用main方法进行了测试。

public class Test {
     public static void main(String[] args) {
        Car test = new Car("test", true);
        System.out.println("test = " + test);
    }
}

编译没有任何问题,结果如下:

test = Car{color=test, valid=true}

答案 1 :(得分:0)

Scala有自己的编译器scalac,而java使用javac。由于scalac编译为java可以读取的类文件,并假设您只在类中使用java库,因此可以在java中加载该类。所以你需要的是调用scalac来编译scala文件,然后使用ClassLoader加载生成类文件