未提供的源文件的javac编译器错误

时间:2013-01-14 19:03:00

标签: java jaybird

运行javac -d classes myfiles...时出现此错误。奇怪的是,我没有任何文件夹中的PooledPreparedStatementHandler.java,也没有任何源文件中的PooledPreparedStatementHandler子字符串。我发现的唯一引用是jaybird jar中的PooledPreparedStatementHandler.class(在我的类路径中使用和需要)。

./lib/jaybird-full-2.1.6.jar (all class files, no java files)

这是错误:

org/firebirdsql/pool/PooledPreparedStatementHandler.java(org/firebirdsql/pool:PooledPreparedStatementHandler.java):32: package org.apache.xalan.lib.sql does not exist
import org.apache.xalan.lib.sql.XConnection;

这是编译命令:

find src/main/java -type f -name "*.java"| xargs javac -target 1.5 -d war/WEB-INF/classes

此错误的来源是什么?我正在使用oracle javac 1.6.0_26

3 个答案:

答案 0 :(得分:1)

source code开始,PooledPreparedStatementHandler似乎尝试导入org.apache.xalan.lib.sql.XConnection,因此您依赖它。因为你在构建类路径中没有这个,所以你得到了错误。

答案 1 :(得分:1)

您的项目中有一个Jaybird源的修改副本,它与您的其余代码一起编译。 org.firebirdsql.pool.PooledPreparedStatementHandler的原始Jaybird 2.1.6版本(链接到subversion中的2.1.6标记)不引用org.apache.xalan.lib.sql.XConnection

实际上看起来它正在尝试编译PooledPreparedStatementHandler.java的版本,而不仅仅是使用Jaybird jar文件中的类。您可能想要检查find src/main/java -type f -name "*.java"的结果是否包含任何Jaybird .java文件(即在org.firebirdsql。*包中)。

您还可以尝试在构建时在类路径中包含Xalan-J。如果目标文件夹中包含PooledPreparedStatementHandler的副本,则源文件将以某种方式包含在您的构建中。

答案 2 :(得分:0)

Mark实际上在评论中给了我答案。如果您想要分数标记,请将其移至答案。在此之前,JayBird将Xalan 2.3.1列为dependence。我只需要在类路径中包含它。