Из scala-программы, которая также работает в JVM, я могу открыть приложение, и оно по умолчанию находится в центре внимания. (Протестировано с xUbuntu, который является разновидностью Linux).
import java.awt.Desktop
val dt = Desktop.getDesktop ();
dt.open (new java.io.File ("euler166.svg"));
Я не могу сказать, специфично ли это для Linux, или, может быть, для чего-то еще - однако запуск Inkscape в моем примере, превосходный в вашем, может занять несколько секунд, пока пользователь нетерпеливо нажимает на javaprogram снова, тем самым утверждая, что курсор назад. Вы проверяли это?
Затем вы можете перейти к последнему приложению, по крайней мере, в Linux и Windows, используя ALT-Tab, также известный как Meta-Tab (снова показанный в коде scala, который, я уверен, вы можете легко преобразовать в javacode):
import java.awt.Robot
import java.awt.event._
val rob = new Robot ()
rob.keyPress (KeyEvent.VK_META)
rob.keyPress (KeyEvent.VK_TAB)
rob.keyRelease (KeyEvent.VK_TAB)
rob.keyRelease (KeyEvent.VK_META)
но, к сожалению, неизвестный источник проблем, также известный как пользователь, может ничего не делать, так что переключение будет ложной вещью. Может быть, с потоком, который в течение определенного времени проверяет, имеет ли фокус java-программа, но сохраняет ли она форму рулетки в интерактивной среде, потому что у пользователя может быть быстрый или медленный компьютер, или переход на тем временем третье приложение и так далее. Может быть, подсказка перед запуском нового приложения - лучшее, что вы можете сделать?