我正在使用 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 中正常运行,并打开所有相关的源文件,而不是从我的实际构建机器上运行。