У меня есть класс, который находится в пакете com.toptur.sysTray, все, что он делает, - это загружает системный трей, он не использует никаких внешних пакетов. я создаю объект SysTray для установки панели задач. Все строится нормально. я могу запустить приложение из командной строки, и системный лоток будет установлен. Но когда я пытаюсь создать банку из файлов классов и запустить ее, я получаю NoClassDefFoundError.
Пакет и его файлы классов находятся в банке, мое приложение не использует внешние банки Ant. просто классы, проверенные java.
И если собрать файл .exe из jar, он снова начнет работать без ошибок.
Как я могу это отследить?
<target name="jar" depends="">
<jar destfile="build/toptur.jar" >
<manifest>
<attribute name="Built-By" value="Toptur"/>
<attribute name="Main-Class" value="gotacan"/>
</manifest>
<fileset dir="build">
<include name="**/*.class"/>
<include name="**/*.png"/>
<exclude name="**/*.jar"/>
</fileset>
</jar>
i create the jar file from a ant target using above code. driver program is not in a package. its located in gotacan.java
Я запускаю его с помощью java -jar toptur.jar
остальная часть программы работает, она выдает исключение только тогда, когда я пытаюсь использовать этот пакет.