1

スカラオブジェクトから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のメンバーではありません^ 1つのエラーが見つかりました

誰かが私のJavaクラスをscalaコードにインポートする方法を教えてもらえますか?

ありがとうSuresh

4

1 に答える 1

1

sbt のようなものを使いたくない場合は、最初に CLASSPATH の場所を決定する必要があります。2 つの異なるクラス ファイル (Java から生成されたものと Scala から生成されたもの) があるため、クラス ファイルが存在するディレクトリが少なくとも 1 つ必要です。だとしましょうd:\myclasses

その場合、次のコマンドを使用して Java ファイルをコンパイルします。

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

これにより、適切なパッケージ構造で Java クラス ファイルが .xml に生成されますd:\myclasses。次に、scala ファイルを次のようにコンパイルします。

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

scalac コマンド ラインの一部としてクラスパスを渡す代わりに、CLASSPATH環境変数を に設定することもできますd:\myclasses

于 2012-08-07T10:01:36.167 に答える