Там, где я работаю, они используют метод AppletContext.showDocument(URL)
, когда пользователь выходит из нашего приложения, которое представляет собой апплет, предоставляющий желаемый JSP выхода из системы. Но у них также есть код, который говорит, что если по какой-то причине они не могут получить AppletContext
, просто вызвать метод Applet.destroy()
.
Мы используем архитектуру тонкого клиента, что означает, что у нас, по сути, есть набор «глупых» терминалов, подключенных к серверу. Я упоминаю об этом, потому что у нас часто будут работать десятки, если не сотни экземпляров JVM - по одному для каждого апплета.
Внутри метода destroy()
они удаляют все ресурсы, которые они приобрели, а затем получают ссылку на Runtime
и вызывают runFinalization()
и gc()
, но это не делает System.exit()
или эквивалент.
Вопросов
- Я понимаю, что это освобождает ресурсы и оставляет вас на той же веб-странице, но что это делает с JVM, на которой был запущен апплет?
- Если я добавлю вызов
System.exit()
в концеdestroy()
, что он сделает с другими JVM, работающими на сервере тонкого клиента?