У меня достаточно большая Java-программа, и мы хотим, чтобы пользователь мог выйти из приложения и войти в систему как другой пользователь. Для этого мы бы хотели закрыть приложение и перезапустить его, чтобы оно представляло пользователю диалог входа в систему. Проблема в том, что приложение довольно большое и плохо написано. В нем много статических переменных, которые содержат некоторую информацию о состоянии. В идеале я хотел бы переписать приложение, чтобы справиться с ситуацией, когда все они могут быть очищены, но в действительности мы должны предоставить эту функциональность как можно скорее.
То, что я думал, было бы самым простым - просто остановить приложение и запустить новый виртуальный компьютер. Тем не менее, кажется удивительно трудным остановить приложение и запустить одно и то же приложение при закрытии текущего. У кого-нибудь есть опыт в этом деле?
РЕДАКТИРОВАТЬ: мы продолжаем использовать Runtime.exec для повторного вызова того же приложения, но exec () хочет заблокировать, поэтому нам нужно перепрыгнуть через обручи, чтобы заставить его работать на любой платформе (Windows, Mac, Linux). Я бы предпочел независимый от платформы способ сделать это.