![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| lazycat |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: нет Всего: 1 |
Доброго времени суток всем!
Есть проблема. Надо из текущей программы запустить по Java Web Start другую программу, но запустить так, чтобы они обе выполнялись в одной JVM !!!. То есть запуск процесса javaws не подходит. Конечно можно начать клепать аналог javaws "с нуля", но это как-то не воодушевляет. Слышал ли кто-нибудь хоть краем уха о подобных задачах и способах решения? Буду чрезвычайно благодарен за любую ссылку. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
А тебе нужно именно JWS приложение стартовать? Или просто какое-то твое приложение?
Если это твое приложение, то тут особых проблем нет, скачиваешь все jar, создаешь ClassLoader которому прописываешь все эти jar в classpath. Затем загружаешь main класс и выполняешь его main(). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Постановка задачи выглядит бессмысленной. Если вам надо подключать/отключать компоненты приложения в рантайме, то это предмет модульной архитектуры и реализуется с помощью OSGi фреймворков (Felix,Equinox,..). Автоматическое обновление компонентов обеспечивается механизмом OBR , т.е. организацией BundleRepository. Другой вариант модульной архитектуры - NetbeansPlatform.
|
|||
|
||||
| lazycat |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: нет Всего: 1 |
Именно JWS и к тому же чужое. Единственное, что в моих силах - это вызвать метод main(). Вопрос о скачивании и старте с локальной машины не рассматривается. Прочитал и увидел, что написал глупость. Метод main вызовется без моего участия. Одним словом, надо, чтобы приложение скачалось, причем скачалось именно как JWS и запустилось в той же JVM. Добавлено через 4 минуты
Не надо подключать и отключать компоненты. Более того, JWS-приложение уже написано и я не могу его редактировать. Единственное, что надо - чтобы выполнялось в той же JVM, что и вызывающее приложение. Выглядит бессмысленно? Возможно. Но изменить постановку задачи не в моих силах. Это сообщение отредактировал(а) lazycat - 26.4.2010, 17:26 |
||||
|
|||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Я бы не хотел, чтобы какой-нибудь умелец легко подключился к моему JWS и через память получил доступ к данным, поступаемым с сервера. Мое приложение получает поток данных с сервера. Пользователь оплачивает эти данные. Получив прямой доступ к этим данным пользователь получает прекрасную возможность перепродавать эти данные. В моем случае это будет воровство. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Да нет в JWS никакой магии. В JNLP просто перечисленны JAR-ы и указан main(), так что полюбому кому надо, скачает все JAR-ы и запустит приложение. Копай в сторону com.sun.javaws.Main.run() по идее именно он и запускает всю эту шарманку. Но как, это надо разбираться, этот класс не документирован. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Магии нет. Я о том, что это не только технический вопрос. |
|||
|
||||
| lazycat |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: нет Всего: 1 |
Нашел решение.
Надо сделать свой class loader, что в общем-то несложно. А библиотека netx (вернее, приложение с API) предельно упрощает задачу. Спасибо всем откликнувшимся за участие. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Расскажи поподробней.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| lazycat |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 15.7.2007 Репутация: нет Всего: 1 |
Все предельно просто. Надо найти пакет netx (ссылку потерял, где-то на sorceforge, в общем, поисковик найдет за секунду). Там есть класс JNLPClassLoader. Класс документирован. Позволяет скачать Java Web Start программу и запустить через reflection. Если надо подробнее, то скажи, расскажу завтра вечером или послезавтра утром, сегодня предельно занят. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Ясно, спасибо.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |