Mandriva est il faché avec les thread java?
Bonjour à tous!
J'ai un problème bizarre que je vous expose, car je ne comprends pas la réaction de linux...
Configuration: Mandriva 2007 GNOME
Situation: j'implémente actuellement du code java qui sera exécuté ensuite sur une carte embarquée. Le principe général du programme est simple et multithreading.
1) Au démarrage du programme, une classe est appelée pour créer un Premier Thread qui écoute une entrée d'interrupteur.
2) Un second Thread est demarre, et attend qu'une variable booleenne liee à l'interrupteur passe à true pour démarrer une acquisition video / donnee isse d'une carte d'acquisition
3) Démarre alors Un thread d'acquisition capteur et une instance de classe JMF.
Lorsque j'exécute ce programme depuis la console, aucun problème tout fonctionne parfaitement.
L'absence de pérphérique type clavier/écran ds l'embarqué m'a donc conduit naturellement à rajouter un script dans le init.d avec un lien vers rc5.d (mon runlevel) pour démarrer le programme au démarrage, avec un "&" pour l'éxécuter en toile de fond.
Le problème arrive alors, afin de suivre les différentes erreurs, le programme inscrit ses étapes dans un repertoire Log sous forme de fichier. En effet, le programme s'arrete au Premier Thread, sans même l'exécuter.... Les fichiers précédents étant présents, cela signifie que l'exécution du script est correcte.
D'où une question simple: Linux et les thread java sont ils fachés, parce que ce problème me prend la tête... De plus totu s'exécute en root (nécessité de cherger un module pour la carte au démarrage), ce qui réduit encore ma compréhension du phénomène..
Aspirine et conseils/solution seront recus comme des offrandes divines...
D'avance un enorme MERCI
F.
Le problème n'est pas au niveau des threads mais..
Bien, rebonjour à tous, je vois que mon problème n'a pas soulevé les foules, mais j'arrive avec de nouvelles infos...
Bien, après recherches, il semble que je me sois trompé de cible.. En effet, le problème ne provient pas de la gestion des thread, mais d'une histoire d'entrée sortie et de redirection
J'ai donc modifié mon script de démarrage en rajoutant:
Code:
1 2
|
java Main 2>&1 >> log.txt |
Ce qui m'a permis de résoudre en partie mon problème. Mais il en persiste un, toujours lié à la redirection. Elle est liée aux exceptions.
si on tape dans une console la commande précédente et que le programme lève une exception qu'il ne peut résoudre, alors il inscrit typiquement:
Code:
1 2
|
NULL pointer Exception etc... |
dans la console, mais pas dans le fichier, ce qui semble prouver que la sortie d'erreur ne permet pas de rediriger ce flux.
Quelqu'un connait-il un moyen de rediriger cette sortie afin de résoudre définitivement mon problème???