运行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
答案 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。我只需要在类路径中包含它。