1

我想从 scala 对象中导入并调用一个 java 类(它来自一个外部包)。我的代码是这样的

Java代码:

package com.test.services.account;

public class MyMain {
    public static void main(String[] args) {
        System.out.println("coming into main");
    }
}

斯卡拉代码:

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

谢谢苏雷什

4

1 回答 1

1

如果你不想使用类似 sbt 的东西,你应该首先决定你的 CLASSPATH 在哪里。由于您有两个不同的类文件(一个由 Java 生成,一个由 Scala 生成),因此您至少需要一个目录来存放您的类文件。假设是d:\myclasses

在这种情况下,您将使用以下命令编译 java 文件:

d:\mycode> javac -d d:\myclasses MyMain.java

这将在适当的包结构中生成您的 Java 类文件d:\myclasses。然后你会像这样编译scala文件

scalac -classpath d:\myclasses -d d:\myclasses scalatest.scala

除了将类路径作为 scalac 命令行的一部分传递之外,您还可以将CLASSPATH环境变量设置为d:\myclasses.

于 2012-08-07T10:01:36.167 回答