Ошибка компилятора javac для исходного файла, который не предоставлен

Я получаю эту ошибку при запуске javac -d classes myfiles..., Странно то, что у меня нет PooledPreparedStatementHandler.java ни в одной папке, и у меня нет подстроки PooledPreparedStatementHandler ни в одном из моих исходных файлов. Единственная ссылка, которую я нашел, была PooledPreparedStatementHandler.class в jaybird jar (использовалась и нужна в моем classpath).

./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 ответа

Решение

Из исходного кода это выглядит так PooledPreparedStatementHandler пытается импортировать org.apache.xalan.lib.sql.XConnectionтак что вы зависите от этого. И поскольку у вас нет этого в вашем пути к классу сборки, вы получаете ошибку.

Похоже, у вас есть измененная копия исходных текстов Jaybird внутри вашего проекта, которая скомпилирована вместе с остальным кодом. Оригинальная версия Jaybird 2.1.6 org.firebirdsql.pool.PooledPreparedStatementHandler (ссылки на тег 2.1.6 в Subversion) не ссылаются org.apache.xalan.lib.sql.XConnection,

Похоже, что он пытается скомпилировать версию PooledPreparedStatementHandler.java, а не просто использовать класс из Jar-файла Jaybird. Вы можете проверить, если результат find src/main/java -type f -name "*.java" включает в себя любой Jaybird .java файлы (т.е. в пакетах org.firebirdsql. *).

Вы также можете попытаться включить Xalan-J в ваш путь к классу при сборке. Если копия PooledPreparedStatementHandler включается в папку назначения, затем исходный файл каким-то образом включается в вашу сборку.

Марк фактически дал мне ответ в комментарии. Если вы хотите, чтобы точки отмечены, переместите его в ответ. До этого JayBird перечисляет Xalan 2.3.1 как зависимость. Мне просто нужно было включить это в classpath.

Другие вопросы по тегам