私はMavenでビルドしていて、一見無害な「シンボルが見つかりません」というエラーが発生します。問題は、ビルドが私が知っているすべての低レベルのJavaツールで正しく、気密に見えることを確認したことです。私はこのコマンドラインでビルドしました:
javac -d /home/dan/EmailClient/Initial-Client/target/classes -classpath <many jars>:
/thepath/Common/1.0-SNAPSHOT/Common-1.0-SNAPSHOT.jar /* I need this one */
-sourcepath /thepath/src/main/java: <the files>
-s /thepath/target/generated-sources/annotations
-g -nowarn -target 1.7 -source 1.7 -encoding UTF-8
このエラーを取得します:
Launcher.java:119: error: cannot find symbol
return Promise.onPool(getterPool).continueWith(new Transformer<Void, Promise<List<Void>>>() {
(エラーがオンになっているonPool
)
そして、jar xf Common-1.0-SNAPSHOT.jar
(cd
コマンドラインでディレクトリをコピーして貼り付けることで)実行し、次に
javap Promise.class
これは
public static me.unroll.functional.Promise<java.lang.Void> onPool(java.util.concurrent.Executor);
だから、これは私には気密に見えます-私が見逃しているデバッグステップは何ですか?
さらに、これは別のマシンで正常にビルドされ、実際のビルドマシンからではなく、関連するすべてのソースファイルを開いた状態でEclipseから正常に実行されます。