16

単純なtypesafe'akkaプログラム(scala 2.10、akka、2.1.0)をコンパイルしようとしたとき:

 scalac -cp "akka-actor_2.10-2.1.0.jar:akka-camel_2.10-2.1.0.jar" write2.scala

error: bad symbolic reference. A signature in package.class refers to term apache
in package org which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling package.class.
error: bad symbolic reference. A signature in package.class refers to term camel
in value org.apache which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling package.class.
write2.scala:21: error: bad symbolic reference. A signature in package.class refers to term model
in value org.camel which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling package.class.
val mina = system.actorOf(Props[MyEndPoint])

three errors found

21行目のコード:

 val mina = system.actorOf(Props[MyEndPoint])

(同じプログラムがEclipseで正しくコンパイルされているため、ソースコードは問題ありません)

ほとんどの場合、-cp変数に一部のjarファイルがありません。問題は、その奇妙な/役に立たないエラーメッセージの意味です。

ありがとう、トーマス

4

4 に答える 4

11

メッセージには、「org.apacheクラスパスにパッケージがありません。ファイルの読み取り中にパッケージが必要ですpackage.class」と表示されます。に渡して、コンパイラに到達する実際の-Ylog-classpathクラスパスを確認します。scalac

于 2013-01-15T21:15:51.957 に答える
2

私にとっては、JDKがPATHにもJAVA_HOMEにも設定されていませんでした

JAVA_HOMEを追加してJDKルートフォルダーをポイントし、jdk / binフォルダー(javacを含む)をパスに直接追加できます。

パスを追加する方法については、Oracleドキュメントを参照してください http://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html

于 2013-09-10T14:50:35.447 に答える
1

これが将来誰かに役立つ場合に備えて、新しいクラスを追加した後に採用したアプリケーションでこの問題が発生していました。パッケージ内の各クラスのパッケージ名の大文字と小文字、および実際のディレクトリ構造が異なることが判明しました。すべてのディレクトリを小文字にすると、再び機能し始めました。

于 2019-02-06T22:13:10.683 に答える
0

初めてのScalaユーザー。私は日食の設定にいくつかの問題があり、以前は次のようになりました。

Error:scalac: bad symbolic reference. A signature in package.class refers to type compileTimeOnly
in package scala.annotation which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling package.class.

最後に、scalaテストバージョン2.11とコンパイラバージョンが一致する必要があることがわかりました。ダウンロードしたscalaバージョン2.11-RC1

于 2014-08-28T13:58:18.370 に答える