2009-02-12 5 views
0

Je cours un client simple de Java par la commande java <class file>. La commande java est invoquée par un processus système. C'est sur Unix.Comment réinitialiser ou tuer le contexte JVM?

Nous étions confrontés à un problème avec l'affichage X11. Nous avons donc ajouté export DISPLAY=:0.0 dans le fichier de démarrage et le problème d'affichage a été résolu. Maintenant, lorsque la ligne export DISPLAY=:0.0 est supprimée du fichier de démarrage et que le client Java est à nouveau exécuté, nous ne sommes pas en mesure de revenir à l'ancien état, c'est-à-dire que nous n'obtenons plus l'erreur d'affichage X11. Il y a donc quelque chose qui persiste dans le système. Est-il possible de s'assurer que le contexte JVM a été tué avant d'exécuter le client?

Nous avons supprimé le processus qui déclenche le client Java, puis redémarré le processus pour exécuter à nouveau le client Java. Mais pas réussi à revenir à l'ancien état. [Edit] J'ai oublié de mentionner que j'ai déjà essayé "DISPLAY unset" dans le fichier stop. Le démarrage fie est exécuté lorsque l'environnement est levé et le fichier d'arrêt est exécuté lorsque l'environnement est réduit. J'ai également essayé le mode sans tête, mais cela ne fonctionne pas pour notre programme.

Répondre

2

Vous avez probablement défini l'environnement DISPLAY dans le shell. Essayez de taper "export DISPLAY =" ou "unwet DISPLAY".

3

Si vous avez déjà exécuté la commande d'exportation dans le shell actuel (à partir du fichier de démarrage, même), la valeur est dans votre environnement. Le désactiver (ou obtenir un nouveau shell avec un environnement propre) est la seule façon de se débarrasser du paramètre d'environnement.

Je suggèrerais d'ajouter une ligne à votre script de démarrage pour faire écho à $ DISPLAY, afin que ce qui est actuellement défini pendant que vous dépannez le problème soit évident.

Si votre processus n'a pas réellement besoin de l'affichage de xwindows, vous devez démarrer la JVM en mode sans tête. Les détails sont here.

+0

J'ai oublié de mentionner que j'ai déjà essayé "DISPLAY unset" dans le fichier stop. Le démarrage fie est exécuté lorsque l'environnement est levé et le fichier d'arrêt est exécuté lorsque l'environnement est réduit. J'ai également essayé le mode sans tête, mais cela ne fonctionne pas pour notre programme. – Vicky

+0

Avez-vous ajouté l'écho de $ DISPLAY au script de démarrage (de préférence juste avant l'appel de java) pour que vous puissiez confirmer qu'il est activé/désactivé tel que vous le croyez? – Jared

+0

Je ne suis pas très familier avec bash (un tcsh man moi-même) .... est-ce que "unset" le supprime de l'environnement, ou devez-vous "unset" puis "exporter" la variable now-unset? – Jared