我是scala
的新手。我需要使用java来执行scala类。
我的确切要求是:我需要将整个scala类(文件)作为参数传递给java jar
。 jar
应该读取scala
代码并执行它。我搜索了很多网站,但没有找到合适的答案。有没有办法做同样的事情?
先谢谢你。
答案 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加载生成类文件