2009-10-18 3 views
1

J'ai construit une application de serveur client en utilisant un fichier IDL pour la communication du serveur client sur le réseau. Les programmes client et serveur sont tous deux en Java. Lorsque l'utilisateur entre exit, le serveur et le client quittent. Cependant, je suis incapable de tuer le processus du serveur de noms. j'ai commencé le serveur de noms en utilisant la commandeComment faire pour tuer le processus de serveur de noms en Java

tnameserv -ORBInitialPort 1050

Comment puis-je tuer le serveur de noms dans les programmes client ou serveur (qui sont en java)?

+0

Vous ne pouvez pas arrêter le serveur de noms standard avec des méthodes Java – tuergeist

Répondre

2

Lorsque vous exécutez le tnameserv vous devrez le tuer via la commande kill (linux, unix) ou Ctrl + C (Windows)

Si sur linux/unix, cela devrait faire l'affaire:

killall tnameserv 

voir http://java.sun.com/j2se/1.4.2/docs/guide/idl/tnameserv.html#stoppingnameserver

Edit:

Si vous voulez lancer la commande killall de withing utilisation java:

runtime.exec("killall tnameserv"); 

voir http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html

Pensées:

Il semble étrange d'avoir commencé la tnameserv de l'extérieur de notre programme, et ensuite essayer de le tuer à l'intérieur. (problèmes d'autorisation, autres utilisateurs utilisant le serveur de noms, etc, etc.) Selon vos besoins, pourquoi ne pas démarrer tnameserv depuis votre application?

+0

killall à partir d'un programme Java? – tuergeist

+0

à partir de la ligne de commande linux. Au même endroit, vous exécutez la commande 'tnameserv -ORBInitialPort 1050' à partir de. –

+0

mais la question était de savoir comment tuer dans l'application client ou serveur (Java)! – tuergeist

Questions connexes