У меня есть приложение GUI, которое должно работать в фоновом режиме и постоянно собирать информацию. Сначала необходимо отобразить пользовательский интерфейс для ввода учетных данных, а затем время от времени для отображения ошибок.
Я понимаю, что не могу запустить приложение GUI как службу, поэтому я подумал о создании службы только для запуска GUI приложение. Таким образом, первая программа запускается как служба, которая просто запускает приложение GUI, а затем продолжает прослушивать любую информацию из приложения GUI. Ниже приведен код первого приложения, которое запускает приложение GUI.
String path = Paths.get("D:\\Dempapp.jar").toAbsolutePath().normalize().toString();
String[] startOptions = new String[] {"javaw", "-jar", path};
Process p = new ProcessBuilder(startOptions).start();
Timer tempTimer = new Timer();
tempTimer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println((new Date()).toString());
}
},new Date(),10*1000);
Когда я запускаю его, приложение GUI запускается, но в какой-то момент замирает на 5-10 секунд, поэтому GUI никогда не запускается. Однако, если я уничтожу первое приложение, которое запустило приложение GUI, GUI сразу же появится, а затем продолжит работать, как и ожидалось. И я еще не запускал первое приложение как службу, я все еще запускаю его из командной строки.
Так есть ли лучший способ запустить это приложение GUI из службы windows