jl.lang.NoClassDefFoundError проблема экспорта файла затмения - PullRequest
0 голосов
/ 13 января 2011

При компиляции и запуске с использованием eclipse проблем не возникает, но когда я экспортировал в виде jar с этими настройками, я получил Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: gnu/io/SerialPortEventListener.

Экспортер jar не экспортировал мою расширенную библиотеку jar?

alt text alt text

Ответы [ 4 ]

2 голосов
/ 13 января 2011

Это предложение из исключений JavaDoc помогает понять, что пошло не так:

Определение класса для поиска существовало, когда выполняемый в данный момент класс был скомпилирован, но определение больше не может быть найдено.

Вы создали приложение на Eclipse без ошибок. Поэтому определение classpath внутри eclipse было достаточно хорошим, чтобы скомпилировать все классы.

Теперь вы экспортируете его, запускаете из затмения и сталкиваетесь с этой ошибкой. Экспортированное приложение больше не использует определение пути к классам eclipse projects. И в настоящее время нет библиотеки, которая содержит gnu.io.SerialPortEventListener.

Общее решение: исправить проблемы с classpath для экспортированного jar.

1 голос
/ 11 января 2012

Вы можете также рассмотреть возможность использования инструмента с открытым исходным кодом WinRun4J.

Это доступно на http://winrun4j.sourceforge.net/.

Я нашел это простым и эффективным в использовании.

1 голос
/ 14 января 2011

Я решил это с помощью fatjar

1 голос
/ 13 января 2011

Это может быть проблема с зависимостями, однако не путайте ClassNotFoundException и NoClassDefFoundError . В основном, это говорит о том, что при инициализации была проблема: gnu/io/SerialPortEventListener Я бы проверил этот класс на наличие ошибок в качестве отправной точки.

...