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