2014-03-27 2 views
1

Поскольку я добавил в справочные библиотеках ucanaccess-2.0.3.jar (затмение Луны), я получаю эту ошибку во время выполнения моей программы:Конфликт между JT400 и UCanAccess?

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class net.ucanaccess.jdbc.UcanaccessDriver 

ссылается на строку коды, содержащий jt400 соединение, и работаю, если я не включаю ucanaccess баночки в моем проекте, а именно:

Class.forName("com.ibm.as400.access.AS400JDBCDriver"); 
Connection c = DriverManager.getConnection("jdbc:as400://"+systemi,user,pass); 
return c; 

, так что я не буду путать ... у меня есть класс, который делает ucanaccess соединения, но это не invocated, пока нажимаю :

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
Connection c=DriverManager.getConnection("jdbc:ucanaccess://M:/FServer.mdb"); 
return c; 

Это конфликт библиотек? Кто-нибудь еще это пробовал?

+0

Я нашел это .. Это известная проблема? bad ... http://sourceforge.net/p/ucanaccess/discussion/help/thread/0b85dea2/ – AndreaTaroni86

ответ

2

проблема, с которой вы связаны, вероятно, связана с повреждением mdb и полностью не связана с вашей проблемой NoClassDefFoundError. Также невозможно решить проблему конфликта с AS400JDBCDriver, поэтому было бы лучше сосредоточиться на java.lang.NoClassDefFoundError. Это означает, что в вашей среде среды выполнения среда отсутствует. Вы должны сначала проверить, используете ли вы java 6 или более старые, если в вашем пути к классам есть все зависимости UCanAccess (см. Банки в папке lib дистрибутива UCanAccess: jackcess, hsqldb, commons-logging и commons-lang), и если они не конфликтуют с банками уже в пути к классам (например, наличие старой и несовместимой версии jackcess). Cheers Marco

+0

Это был конфликт между файлами jar в пути lib, создавая разные пути для внешних банок, разрешила мою проблему. PS: та же проблема в java 7 и 8, с относительным пакетом. Спасибо Марко. – AndreaTaroni86

Смежные вопросы