我想做一个只打开一次的RCP应用程序。
如果再次打开它,它将焦点(理想情况下传递提供的参数(放在原始窗口上。
我的用例涉及同一台计算机上的多个并发用户(具有自己的用户帐户(,因此我认为打开端口的路线不起作用。
我正在使用 RCP4 - 我在网上看到的很多现有的东西都是 RCP3 或更早的。
这里有一个库:http://www.sauronsoftware.it/projects/junique/
JUnique 库可用于防止用户同时运行同一 Java 应用程序的多个实例。
此处如何使用它的一个例子:
public static void main(String[] args) {
String appId = "myapplicationid";
boolean alreadyRunning;
try {
JUnique.acquireLock(appId);
alreadyRunning = false;
} catch (AlreadyLockedException e) {
alreadyRunning = true;
}
if (!alreadyRunning) {
// Start sequence here
}
}