Java 未解析的编译,但库已在类路径中
我在构建这个组件时遇到了一个非常奇怪的问题: 实际上,这是Talend Open Studio的自定义组件,但问题似乎更一般,与Talend无关 未解决的编译问题与twitter4j-stream-4.0.1.jar中的两个类有关 库已正确导入和链接,正如您可以从我用于执行它的命令中看到的:Java 未解析的编译,但库已在类路径中,java,Java,我在构建这个组件时遇到了一个非常奇怪的问题: 实际上,这是Talend Open Studio的自定义组件,但问题似乎更一般,与Talend无关 未解决的编译问题与twitter4j-stream-4.0.1.jar中的两个类有关 库已正确导入和链接,正如您可以从我用于执行它的命令中看到的: C:/Program Files (x86)/Java/jre7/bin/java.exe -Xms256M -Xmx1024M -verbose -Dfile.encoding=UTF-8 -cp E:
C:/Program Files (x86)/Java/jre7/bin/java.exe -Xms256M -Xmx1024M -verbose -Dfile.encoding=UTF-8 -cp E:/TalendWorkspaces/.Java/lib/dom4j-1.6.1.jar;E:/TalendWorkspaces/.Java/lib/guava-13.0.jar;E:/TalendWorkspaces/.Java/lib/talend-bridge-api-0.2.jar;E:/TalendWorkspaces/.Java/lib/tTwitterStreamInput-1.1.jar;E:/TalendWorkspaces/.Java/lib/twitter-commodities-0.2.jar;E:/TalendWorkspaces/.Java/lib/twitter4j-core-4.0.1.jar;E:/TalendWorkspaces/.Java/lib/twitter4j-stream-4.0.1.jar;.;E:/TalendWorkspaces/.Java/classes;E:/TalendWorkspaces/.Java/lib; test.twitterstream_0_1.twitterStream
但这一例外毫无疑问:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method addListener(StatusListener) from the type TalendRowTweetBehaviour refers to the missing type StatusListener
The method addFilter(FilterQuery) from the type TalendRowTweetBehaviour refers to the missing type FilterQuery
at test.twitterstream_0_1.twitterStream.tTwitterStreamInput_1Process(twitterStream.java:737)
at test.twitterstream_0_1.twitterStream.tTwitterOAuth_1Process(twitterStream.java:429)
at test.twitterstream_0_1.twitterStream.runJobInTOS(twitterStream.java:1241)
at test.twitterstream_0_1.twitterStream.main(twitterStream.java:1100)
使用-verbose命令行参数可以检查加载的类。实际上,没有加载StatusListener和FilterQuery。但是我不知道为什么它们不是,因为类库在类路径中是可用的和明确的
编辑:为了更清晰,我添加了一个屏幕截图。我想知道为什么在第733行声明了未解析的类,但错误只出现在第737行
我注意到twitterjar被声明为
E:/talendworkspace/.Java/lib/tTwitterStreamInput-1.1.jar
。你确定一开始的那个小“t”吗?由于文件名错误,java似乎找不到JAR。我通过执行maven clean
解决了这个问题
不过,这不是一个真正的答案,因为我不知道为什么会发生这种奇怪的行为nono,tTwitterStreamInput是我的库(实际上是一个很小的包装器)。相似的名字只是一个巧合,它不一样。我注意到您指定了有问题的特定JAR文件。您可以尝试执行
jar tf E:/talendworkspace/.Java/lib/twitter4j-core-4.0.1.jar
并查看是否可以找到StatusListener
和FilterQuery
?请注意,这可能会打印出很多行,因此您必须保持眼睛敏锐(或使用grep
或类似工具)。