Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未解析的编译,但库已在类路径中_Java - Fatal编程技术网

Java 未解析的编译,但库已在类路径中

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:

我在构建这个组件时遇到了一个非常奇怪的问题:

实际上,这是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:/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
或类似工具)。