Ошибка компилятора 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.