Pergunta

Eu tenho usado o Stackoverflow por um tempo para encontrar soluções para minhas perguntas de programação, mas para a pergunta atual, não encontrei uma solução útil. Então eu juntei.

Qual seria uma boa solução para limitar um applet Java a apenas uma instância. Eu estou usando o PHP para servir o applet para o usuário final, para que seria uma opção.

Mas estou muito mais interessado se puder limitar a execução de um applet Java através do próprio applet. Eu sou muito novo para Java, então eu realmente não sei onde começar a procurar uma construção assim.

Todas as sugestões seriam apreciadas.

como uma nota lateral " javascript para lançar apenas Uma janela para um applet Java com um determinado URL "seria uma solução. Embora eu esteja incorporando o applet no aplicativo que eu estou construindo e eu não estou realmente interessado em um pop-up servindo o applet. .

sinceramente, Altwouss

editar:
Para esclarecer o limite de instância. Eu gostaria de ter apenas um applet carregado por máquina.

Foi útil?

Solução

Por que você não inicia um SocketServer em uma porta bem conhecida para o seu applet?

Se abrir esse SocketServer, pode ser devido ao fato de que outro já está em execução.Então, você pode exibir uma mensagem contando isso.

Outras dicas

If you use Java WebStart, then there is the JNLP SingleInstanceService.

Unfortunately, Java does not support named mutexs for locking across processes. However, you could implement a primitive lock by simply creating a File at a know location with a known name when your applet starts. If the file cannot be created, then you know that one already exists because the application has already started once before. To ensure the file is deleted when the application closes, simple call File.deleteOnExit() method.

Something like:

if(file.createNewFile()) {
    file.deleteOnExit();
} else {
    throw new Exception("Instance already running!");
}

Not a perfect solution and certainly has some issues... But it's probably enough for what you are trying to do. Also could look at that FileLock class which could offer a more robust and appropriate solution.

i am not really sure of this will help or not.. but the first thing that comes my mind is.. Is it possible to make the applet a singleton? sorry this is more as a follow up question then an answer...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top