我想从scala对象导入并调用一个java类(它来自外部包)。我的代码就像这个
Java代码:
package com.test.services.account;
public class MyMain {
public static void main(String[] args) {
System.out.println("coming into main");
}
}
Scala代码:
package com.newtest.newservice.scala
import _root_.com.test.services.account.MyMain
object scalatest {
def main(args: Array[String]) {
println("Hello, world! " + args.toList)
// Deployer.main(args)
val de:MyMain = new MyMain()
println(de.toString())
}
}
当我使用scalac scalatest.scala编译它时,它会给出一个错误
scalatest.scala:2:错误:对象测试不是包com的成员导入root.com.test.services.account.MyMain^发现一个错误
有人能指导我如何将java类导入scala代码吗?
谢谢Suresh
如果你不想使用类似sbt的东西,你应该首先决定你的CLASSPATH在哪里。由于你有两个不同的类文件(一个从Java生成,一个从Scala生成),你至少需要一个目录来存放你的类文件。假设这是d:myclasses
。
在这种情况下,您可以使用以下命令编译java文件:
d:mycode> javac -d d:myclasses MyMain.java
这将在d:myclasses
以适当的包结构生成Java类文件。然后你可以像那样编译scala文件
scalac -classpath d:myclasses -d d:myclasses scalatest.scala
您也可以将CLASSPATH
环境变量设置为d:myclasses
,而不是将类路径作为scalac命令行的一部分进行传递。