2016-08-02 1 views
2

Nous avons une application de bureau construite sur la plate-forme NetBeans, qui fonctionne bien. Maintenant, le client veut ouvrir plusieurs instances de l'application au en même temps. Nous évaluons actuellement les exigences. L'une des possibilités que nous avons identifiées consiste à copier les exécutables et les dépendances vers des répertoires d'utilisateurs spécifiques. Par exemple C: \ Users \ utilisateurID \ AppData \ Roaming \ app1, C: \ Utilisateurs \ userid \ AppData \ Roaming \ app2 comme ceci.plusieurs instances de l'application plate-forme NetBeans

Nous avons également quelques classes singleton dans notre application. Singleton étant un par jvm, comment cela aura un impact avec deux instances différentes sur la même machine. Nous avons 2 questions 1. Quelle est la bonne pratique pour gérer plusieurs instances d'une application de plate-forme netbeans? 2. Comment pouvons-nous gérer avec des classes singleton?

+0

En regardant dans http://stackoverflow.com/questions/615708/running-several-instances-of-netbeans-rcp-application-simultaneous – sudhakarkmtcs

Répondre

0

Pour exécuter plusieurs instances d'une application de plate-forme NetBeans, ajoutez --userdir à la ligne de commande. Sous Windows, cela se fait facilement en créant deux raccourcis pour votre application et en ajoutant le répertoire utilisateur dans le champ Cible.

app.exe --userdir %APPDATA%\app1 
app.exe --userdir %APPDATA%\app2 

Il n'est pas nécessaire de copier les exécutables et les dépendances dans les répertoires de l'utilisateur. Un inconvénient de cette approche est que chaque instance a sa propre copie des paramètres de l'application. Si vous devez modifier un paramètre, vous devrez l'éditer dans les deux applications. Chaque application de plate-forme aura son propre ensemble d'instances singleton. Les singletons dans une application ne connaîtront pas l'existence des singletons dans l'autre application. Vous pouvez rencontrer des problèmes si, par exemple, les singletons essaient d'obtenir un accès exclusif à un fichier ou un port réseau dans les deux applications.