powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическая загрузка класса с потрохами
7 сообщений из 7, страница 1 из 1
Динамическая загрузка класса с потрохами
    #39602999
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

Столкнулся с подобной проблемой.
Сразу оговорюсь - swing

Есть приложение, своего рода лаунчер. Там две кнопки, обновить и пуск.
Нажимаем обновить, закачиваются потроха.
Нажимаем пуск, потроха запускаются.

Сами потроха. То над чем ведется постоянная работа. Там формы, библиотеки, ресурсы и проч.
Потроха можно запустить и без лаунчера.

Проблема:
1. Получается что потроха запускаются не напрямую, а через другой java-класс и когда я работаю с потрохами в определенный момент вываливается исключение. Из текста исключения я понял что это происходит тогда, когда задействуется какая нибудь либа указанная в потрохах. Хотя если запускать потроха напрямую, не через лаунчер, то все норм.

2. Первую проблему частично решил, положив все либы их потрохов в папку lib/ лаунчера. Но тут опять трабл.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at javax.swing.SwingWorker.get(SwingWorker.java:602)
	at com.andronovman.ciska.threads.SqlToExcelThread.done(SqlToExcelThread.java:259)
	at com.andronovman.ciska.CisKA$51.done(CisKA.java:1623)
	at javax.swing.SwingWorker$5.run(SwingWorker.java:737)
	at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832)
	at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
	at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
	at com.andronovman.voyager.excel.ExcelBuilder.<init>(ExcelBuilder.java:57)
	at com.andronovman.ciska.threads.SqlToExcelThread.doInBackground(SqlToExcelThread.java:240)
	at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at javax.swing.SwingWorker.run(SwingWorker.java:334)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 8 more



Класс org/apache/xmlbeans/XmlObject находится в xmlbeans-2.6.0.jar , но бл...ть... я ее всюду уже разложил и все равно валится. Хотя, повторюсь, если запускать потроха без лаунчера, то все нормально.

Ктонить знает как вообще правильно настраивать такую схему приложения, чтоб без дублирования библиотек.
Спасибо.

P.S. Началось все с реализации выгрузки данных из БД в ехель через apache poi 3.17.
...
Рейтинг: 0 / 0
Динамическая загрузка класса с потрохами
    #39603035
Фотография by-pass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndronovMV,

В моем старом проекте, чтобы заработало, использовался следующий набор библиотек:
poi-3.13-20150929.jar
poi-excelant-3.13-20150929.jar
poi-ooxml-3.13-20150929.jar
poi-ooxml-schemas-3.13-20150929.jar

А так проблема решается импортом проекта на maven.
...
Рейтинг: 0 / 0
Динамическая загрузка класса с потрохами
    #39603041
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять сплошной гуманитарий. "Потроха", "напрямую", "через лаунчер" и ни слова о том какие же технические термины за всем этим спрятаны.
Я подозреваю что при запуске "напрямую", библиотеки прописаны в манифесте "потрохов".
А при запуске "через лаунчер", тот понятия не имеет где и какие библиотеки нужны.
То что вы везде накопировали библиотеку, а это не помогло подсказывает что ланчер не использует wildcard в конфигурации classpath. Вообще, судя по описанию, реализация ланчера так себе. И это его косяк.
...
Рейтинг: 0 / 0
Динамическая загрузка класса с потрохами
    #39603063
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Да все точно!

Вытекающий вопрос: как сделать так, чтобы лаунчер при запуске какбы увидел манифест "потрохов".

Или тыкните носом в нормальную реализацию лаунчера плиз. спасибо

К слову о гуманитариях - я спецом выбрал может не совсем красивые, но короткие сокращения.
...
Рейтинг: 0 / 0
Динамическая загрузка класса с потрохами
    #39603065
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndronovMV,

Так может не стоит запускать в "потроха" в JVM ланчера? Запускайте их как независимый процесс. Тогда разницы не будет.
...
Рейтинг: 0 / 0
Динамическая загрузка класса с потрохами
    #39603066
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Ща попробую. спс
...
Рейтинг: 0 / 0
Динамическая загрузка класса с потрохами
    #39603136
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Блин ну вот я тупанул конечно! Спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическая загрузка класса с потрохами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]