将Java Applet限制为仅一个实例

我已经使用Stackoverflow一段时间来找到我的编程问题的解决方案,但对于当前的问题,我还没有找到有用的解决方案。所以我加入了。 将Java applet限制为仅一个实例的好方法是什么。我正在使用php向最终用户提供applet,因此这是一个选项。 但是如果我可以通过Applet本身限制Java Applet的执行,我会更感兴趣。我对Java很陌生,所以我真的不知道从哪里开始寻找这样的结构。 任何建议,将不胜感激。 作为旁注,“ javascript只为一个具有给定URL的Java applet启动一个窗口“将是一个解决方案。虽然我正在将applet嵌入到我正在构建的应用程序中,但我并不热衷于为applet提供弹出窗口。 此致 AltWouss 编辑: 澄清实例限制。我想每台机器只加载一个applet。     
已邀请:
为什么不在applet的一个众所周知的端口上启动SocketServer? 如果打开SocketServer,可能是因为另一个已经在运行。然后,您可以显示一条消息。     
如果您使用Java WebStart,那么就有JNLP
SingleInstanceService
。     
遗憾的是,Java不支持命名互斥锁来跨进程锁定。但是,您可以通过在applet启动时在知道位置创建具有已知名称的File来实现原始锁定。如果无法创建该文件,那么您知道该文件已存在,因为该应用程序之前已经启动过一次。要确保在应用程序关闭时删除文件,请简单地调用File.deleteOnExit()方法。 就像是:
if(file.createNewFile()) {
    file.deleteOnExit();
} else {
    throw new Exception("Instance already running!");
}
不是一个完美的解决方案,肯定有一些问题......但它可能足以满足你的目标。还可以查看FileLock类,它可以提供更强大和适当的解决方案。     
我不确定这会有什么帮助..但是我想到的第一件事是......是否有可能让applet成为单身人士? 对不起,这更像是一个后续问题然后答案......     

要回复问题请先登录注册