2010-12-03 6 views
1

Je veux créer deux programmes. où le programme 1 aura une collection statique et quelques getter/setter pour accéder/mettre à jour ses valeurs.Comment accéder à la variable statique d'un autre programme

Je veux que le programme 2 devrait pouvoir accéder/appeler getter/setter du programme1. afin que la collecte statique peut être partagée entre de nombreux programmes/processus

* Je ne veux pas engager n'importe quel port.

Répondre

6

Vous ne pouvez pas déclarer une variable statique (ou super-statique) et vous attendre à ce qu'elle soit disponible dans du code en dehors de votre programme - cela ne fonctionne tout simplement pas de cette façon. Ce dont vous avez besoin, c'est d'une sorte de communication inter-processus, et les possibilités sont infinies. Pour en nommer quelques-uns: - sérialiser/désérialiser vers et à partir d'un fichier (local ou sur le réseau) - Sockets (essentiellement, vous ouvrez une connexion réseau entre deux ports sur localhost) - une base de données - mémoire partagée (que ce soit est possible dépend de l'OS) Votre OS de choix peut offrir d'autres moyens, mais le principe reste le même: à chaque fois que la variable change, une application doit notifier l'autre.

1

Cela ne peut pas être fait uniquement avec des variables statiques. Ils sont accessibles partout dans la JVM dans laquelle votre programme s'exécute, mais ils ne sont pas accessibles aussi facilement. Utilisez RMI, ou des sockets, ou des flux d'entrée pour gérer cette communication interprocessus.

1

Il n'y a aucun moyen de le faire. RMI ou CORBA devrait fonctionner. Mais ce sera une exagération. Vous pouvez utiliser des anciennes sockets pour communiquer entre les applications Java. Ou utilisez les canaux java.nio.

Questions connexes