我想从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的成员 import root .com.test.services.account.MyMain ^ 找到一个错误
有人可以指导我如何将我的java类导入scala代码吗?
由于 苏雷什
答案 0 :(得分:1)
如果你不想使用像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命令行的一部分传递。