0

运行时出现此错误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

4

3 回答 3

1

看起来您的项目中有 Jaybird 源代码的修改副本,该副本与您的其余代码一起编译。原始的 Jaybird 2.1.6 版本org.firebirdsql.pool.PooledPreparedStatementHandler(GitHub 上 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,则源文件会以某种方式包含在您的构建中。

于 2013-01-15T11:04:12.710 回答
1

源代码来看,它看起来像是PooledPreparedStatementHandler在尝试导入org.apache.xalan.lib.sql.XConnection,所以你依赖它。而且由于您的构建类路径中没有它,因此您会收到错误消息。

于 2013-01-14T19:30:15.643 回答
0

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

于 2013-06-10T19:08:15.837 回答