То, что вы запрашиваете, зависит от ОС, но вы всегда можете иметь собственную реализацию для этого. Ваше приложение может прослушивать определенный порт для команды bring-to-front
, которую можно отправить из второго экземпляра приложения.
void main(String[] args){
if(applicationAlreadyRunning){
// Send bring-to-front message to running instance on a known port
// and exit.
}
}
При получении сообщения о доставке на фронт вы можете сделать:
public void BringToFrontCommandReceived(){
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
myMainFrame.toFront();
myMainFrame.repaint();
}
});
}