2010-10-29 5 views
0

Je développe un programme Java localement via Eclipse et je débogue sur une machine distante. Chaque fois que j'apporte une modification à mon programme, je copie le fichier de classe correspondant dans le répertoire bin de la machine distante. Je lance mon programme (un simulateur) via un script python via la commande OS.system.Java: fichiers de classe mis à jour non utilisés

Le problème est que mon programme parfois n'utilise pas les fichiers de classe mis à jour après qu'ils ont été déplacés.

Le problème persiste même si je me déconnecte et que je me reconnecte à la machine distante. Ce qui est vraiment étrange, c'est que, en tant que test, j'ai complètement supprimé le répertoire bin sur la machine distante, et j'étais encore capable d'exécuter mon programme.

Quelqu'un peut-il expliquer cela?

+2

démarrez-vous et arrêtez-vous la machine virtuelle Java dans la machine distante? c'est à dire qu'il est frais à chaque fois? –

+0

Je le crois. Soit le script s'exécute entièrement (à la fin de laquelle je suppose que la JVM se termine), soit je termine l'exécution avec CTRL + C. –

+2

"croire", "assumer" ... oui, je commencerais là. – Isaac

Répondre

1

Je parierais des dollars pour des beignets qui dans certaines conditions vous ne redémarrez pas la JVM entre les tests.

L'autre pensée évidente est que la classe n'est pas copiée sur le système cible comme prévu, ou pas à l'emplacement correct. Ou, bien sûr, le programme n'est pas exécuté à l'endroit où vous vous attendez (c'est-à-dire qu'il existe une autre copie des fichiers de classe, peut-être dans un fichier JAR, qui est réellement exécuté).

Vérifiez explicitement tous vos hypothèses.

+0

Autre que de casser l'exécution du programme ou de le laisser s'exécuter, y a-t-il un moyen d'arrêter explicitement la JVM? Aussi, existe-t-il un moyen de vérifier si la JVM est toujours en cours d'exécution? (Lorsque je tape 'ps' dans le terminal, cela n'indique pas qu'un processus Java est en cours d'exécution.) Pour clarifier, je ne copie jamais les fichiers de classe tant que le simulateur est actif (au meilleur de ma connaissance.) –

Questions connexes