HSQLDB - работает с внешним Jar - не с JRE - PullRequest
0 голосов
/ 05 октября 2010

Использование тестового приложения для определения проблем с рабочим приложением и hsqldb.

Если я скомпилирую тестовое приложение с файлом hsqldb.jar в качестве внешнего jar-файла в eclipse, программа заработает. Однако, если у меня есть только файл jar в моей системной библиотеке JRE, я получаю, что клиент до 9.0 попытался соединиться с ошибкой из базы данных.

Два файла являются одинаковыми файлами. Разница лишь в том, что один был добавлен в качестве внешнего jar, а другой был просто в пути класса. При сборке производственного приложения он использует classpath к тому же файлу и генерирует ту же ошибку до 9.0.

Ответы [ 2 ]

1 голос
/ 05 октября 2010

Банкой, которую вы хотите использовать, является банка HSQLDB версии 2.0. Существует второй jar HSQLDB версии 1.8, который находится в вашем пути к классам перед вашим предполагаемым jar.

Это проблема пути к классам. Вы сможете найти, где находится второй jar (1.8) и как он попадает в путь к классу, используя java -verbose или другие параметры отладки.

[добавлено] Еще один шаг, который вы можете предпринять для отладки этого в вашем приложении, - это распечатать значение поля org.hsqldb.persist.HsqlDatabaseProperties.THIS_FULL_VERSION перед подключением к базе данных. Это напечатает версию фляги, используемой как клиент. Успешное соединение означает, что файлы клиента и сервера имеют одинаковую версию.

Экземпляр сервера выводит свою версию на консоль при запуске.

Я бы также рекомендовал использовать последнюю версию jar снимка для HSQLDB со страницы http://hsqldb.org/support/.

0 голосов
/ 07 октября 2010

Разобрался с проблемой, переместив hsqldb.jar в первый объявленный в classpath.

...