Question

J'utilise Stackoverflow pendant un moment pour trouver des solutions à mes questions de programmation, mais pour la question actuelle, je n'ai pas trouvé de solution utile. Alors je me suis joint.

Quelle serait une bonne solution pour limiter une applet Java à une seule instance. J'utilise php pour servir l'applet à l'utilisateur final, de sorte que ce serait une option.

Mais je suis beaucoup plus intéressé si je peux limiter l'exécution d'une applet Java à travers l'applet lui-même. Je suis plutôt nouveau à Java pour que je ne sache pas vraiment où commencer à chercher une construction comme celle-là.

Toutes les suggestions seraient appréciées.

comme une note latérale, " JavaScript pour lancer seulement Une fenêtre pour un applet Java avec une URL donnée "serait une solution. Bien que j'éprouve l'applet dans l'application que je bâche et je ne suis pas vraiment désireux d'une pop up servant l'applet.

sincèrement, Altwousses

EDIT:
Clarifier la limite d'instance. Je voudrais n'avoir qu'un seul applet chargé par machine.

Était-ce utile?

La solution

Pourquoi ne démarrez-vous pas une socketserver sur un port bien connu pour votre applet?

Si vous ouvrez ce socketserver, il peut être dû au fait que l'autre est déjà en cours d'exécution.Ensuite, vous pouvez afficher un message le dire.

Autres conseils

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...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top