Конфликт между JT400 и UCanAccess?

Поскольку я добавил в справочные библиотеки ucanaccess-2.0.3.jar (eclipse Luna), я получаю эту ошибку при выполнении моей программы:

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, но он не вызывается, пока я не нажму кнопку:

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

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


person AndreaTaroni86    schedule 27.03.2014    source источник
comment
Я нашел это .. Это известная проблема? плохо... sourceforge.net/p/ucanaccess/discussion/help/thread /0b85dea2   -  person AndreaTaroni86    schedule 27.03.2014


Ответы (1)


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

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