![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ShuR79 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.9.2007 Репутация: нет Всего: нет |
Добрый день.
Есть 2 веб формы: в первой пользователь делает различные настройки, во второй выполняется Java-апплет с этими настройками. Второя форма открывается по ссылке из первой в новом окне. Первый раз апплет выполняется нормально, но если закрыть окно с аплетом и попытаться его открыть второй раз возникает ошибка: "Error: The applet cannot start. There is another copy of the Engine running in this Java VM." При закрытии формы с апплетом не закрывается Java Console до тех пор пока не закрыть окно с первой формой. Кто-нибудь знает, как сделать чтобы Java VM закрывалась при закрытии окна с апплетом? Возможно ли победить эту проблему другим способом? |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 1 Всего: 43 |
Java VM не закрывается пока все окна браузера не будут закрыты. Все апплеты запускаются под одной VM ( в этом их основной минус по сравнении с WebStart ). Вам надо правильно апплет закрывать, а не VM. There is another copy of the Engine running скорее всего означает, что апплет(Engine) жив. Посмотрите в консоле, какие потоки остались после закрытия окна апплета (команда t).
Это сообщение отредактировал(а) COVD - 7.9.2007, 15:45 |
|||
|
||||
| ShuR79 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.9.2007 Репутация: нет Всего: нет |
Проблема в том, что апплет формируется автоматически из среды моделирования AnyLogic. И к коду апплета у меня доступа нет.
Команда t даёт такие результаты: Group main,ac=8,agc=1,pri=10 Java2D Disposer,10,alive,daemon AWT-Windows,6,alive,daemon traceMsgQueueThread,5,alive,daemon AWT-Shutdown,5,alive AWT-EventQueue-0,6,alive Group Plugin Thread Group,ac=3,agc=0,pri=10 AWT-EventQueue-1,6,alive ConsoleWriterThread,6,alive,daemon TimerQueue,5,alive,daemon Возможно ли закрыть оставшиеся потоки другим способом? |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 1 Всего: 43 |
Все потоки системные, и они не должны мешать повторно открывать апплет. Возможно, в апплете используются статические переменные, которые сохраняют свои значения. В любом случае, поскольку доступа к коду нет, остается пересмотреть дизайн, чтобы исключить повторные запуски апплета.
|
|||
|
||||
| ShuR79 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.9.2007 Репутация: нет Всего: нет |
Спасибо. Так и было - использовались статические переменные. Обратился к разработчику, они выслали исправленную библиотеку, теперь всё работает.
|
|||
|
||||
![]()
|
| Правила форума "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. |