Scala导入和包错误

时间:2012-08-07 09:32:05

标签: java scala import package

我想从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代码吗?

由于 苏雷什

1 个答案:

答案 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命令行的一部分传递。