Scala导入和包错误



我想从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命令行的一部分进行传递。

最新更新