Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Свой" Java Web Start, Надо запустить JWS в той же JVM 
V
    Опции темы
lazycat
Дата 26.4.2010, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



Доброго времени суток всем!

Есть проблема. Надо из текущей программы запустить по Java Web Start другую программу, но запустить так, чтобы они обе выполнялись в одной JVM !!!. То есть запуск процесса  javaws не подходит.
Конечно можно начать клепать аналог javaws "с нуля", но это как-то не воодушевляет.

Слышал ли кто-нибудь хоть краем уха о подобных задачах и способах решения? 
Буду чрезвычайно благодарен за любую ссылку.

PM MAIL   Вверх
LSD
Дата 26.4.2010, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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.
PM MAIL WWW   Вверх
COVD
Дата 26.4.2010, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Постановка задачи выглядит бессмысленной. Если вам надо подключать/отключать компоненты приложения в рантайме, то это предмет модульной архитектуры и реализуется с помощью OSGi фреймворков (Felix,Equinox,..). Автоматическое обновление компонентов обеспечивается механизмом OBR , т.е. организацией BundleRepository. Другой вариант модульной архитектуры - NetbeansPlatform.
PM MAIL   Вверх
lazycat
Дата 26.4.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



Цитата(LSD @ 26.4.2010,  17:06)
А тебе нужно именно JWS приложение стартовать? Или просто какое-то твое приложение?

Если это твое приложение, то тут особых проблем нет, скачиваешь все jar, создаешь ClassLoader которому прописываешь все эти jar в classpath. Затем загружаешь main класс и выполняешь его main().

Именно JWS и к тому же чужое. Единственное, что в моих силах - это вызвать метод main(). Вопрос о скачивании и старте с локальной машины не рассматривается.

Прочитал и увидел, что написал глупость. Метод main вызовется без моего участия. Одним словом, надо, чтобы приложение скачалось, причем скачалось именно как JWS и запустилось в той же JVM.

Добавлено через 4 минуты
Цитата(COVD @ 26.4.2010,  17:07)
Постановка задачи выглядит бессмысленной. Если вам надо подключать/отключать компоненты приложения в рантайме, то это предмет модульной архитектуры и реализуется с помощью OSGi фреймворков (Felix,Equinox,..). Автоматическое обновление компонентов обеспечивается механизмом OBR , т.е. организацией BundleRepository. Другой вариант модульной архитектуры - NetbeansPlatform.

Не надо подключать и отключать компоненты. Более того, JWS-приложение уже написано и я не могу его редактировать. Единственное, что надо - чтобы выполнялось в той же JVM, что и вызывающее приложение.
Выглядит бессмысленно? Возможно. Но изменить постановку задачи не в моих силах.


Это сообщение отредактировал(а) lazycat - 26.4.2010, 17:26
PM MAIL   Вверх
COVD
Дата 26.4.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Цитата

Именно JWS и к тому же чужое.

Я бы не хотел, чтобы какой-нибудь умелец легко подключился к моему JWS и через память получил доступ к данным, поступаемым с сервера. Мое приложение получает поток данных с сервера. Пользователь оплачивает эти данные. Получив прямой доступ к этим данным пользователь получает прекрасную возможность перепродавать эти данные. В моем случае это будет воровство.   
PM MAIL   Вверх
LSD
Дата 26.4.2010, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 19
Всего: 538



Цитата(COVD @  26.4.2010,  19:24 Найти цитируемый пост)
Я бы не хотел, чтобы какой-нибудь умелец легко подключился к моему JWS и через память получил доступ к данным, поступаемым с сервера. Мое приложение получает поток данных с сервера. Пользователь оплачивает эти данные. Получив прямой доступ к этим данным пользователь получает прекрасную возможность перепродавать эти данные. В моем случае это будет воровство.

Да нет в 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.
PM MAIL WWW   Вверх
COVD
Дата 26.4.2010, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Цитата

Да нет в JWS никакой магии

Магии нет. Я о том, что это не только технический вопрос.
PM MAIL   Вверх
lazycat
Дата 27.4.2010, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



Нашел решение. 
Надо сделать свой class loader, что в общем-то несложно. А библиотека netx (вернее, приложение с API) предельно упрощает задачу.

Спасибо всем откликнувшимся за участие.
PM MAIL   Вверх
LSD
Дата 27.4.2010, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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.
PM MAIL WWW   Вверх
lazycat
Дата 27.4.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 15.7.2007

Репутация: нет
Всего: 1



Цитата(LSD @ 27.4.2010,  18:42)
Расскажи поподробней.

Все предельно просто. Надо найти пакет netx (ссылку потерял, где-то на sorceforge, в общем, поисковик найдет за секунду). Там есть класс JNLPClassLoader. Класс документирован. Позволяет скачать Java Web Start программу и запустить через reflection.
Если надо подробнее, то скажи, расскажу завтра вечером или послезавтра утром, сегодня предельно занят.

PM MAIL   Вверх
LSD
Дата 28.4.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.