Execution d'un void main(args[]) en java et valeur retour

Execution d'un void main(args[]) en java et valeur retour - Java - Programmation

Marsh Posté le 03-03-2006 à 18:25:24    

Bonjour,
 
J'ai besoin d'executer du code Java  
 
java maClasse
 
et de retourner une valeur en fonction de la bonne exécution ou pas du code java afin d'informer un outils de supervision.
 
Je doit retourné 0 si c'est OK, 1,2,3... suivant le type d'erreur survenue.
 
Le système sous jacent est Windows 2000 Server.
 
Comment je peux faire ca  vu que la méthode main ne retourne rien? (Alors qu'en C par exemple retourne un int)
 
 
Paquerette


---------------
Paquerette - "Life is a zoo in a jungle." - Peter De Vries. Mes anciens feedback Achat/Ventes : https://forum.hardware.fr/hfr/Achat [...] 8859_1.htm
Reply

Marsh Posté le 03-03-2006 à 18:25:24   

Reply

Marsh Posté le 03-03-2006 à 18:39:01    

peut etre avec un System.exit(int returnCode) ?
 
(je dis ca, j'en sais rien, je propose juste [:petrus75] )

Reply

Marsh Posté le 03-03-2006 à 18:50:48    

héhé... pas mal...
 
je suis vraiment débordé...
 
Merci bcp :)


---------------
Paquerette - "Life is a zoo in a jungle." - Peter De Vries. Mes anciens feedback Achat/Ventes : https://forum.hardware.fr/hfr/Achat [...] 8859_1.htm
Reply

Marsh Posté le 01-07-2009 à 19:47:56    

Malheureusement ce n'est pas une solution, car System.exit(n) retourne dans tous les cas 1.
System.exit(0) -> signifie que le programme a été quitté normalement
System.exit(1), System.exit(2), System.exit(n) => signifient que le programme a été quitté à cause d'un problème.
 
Je cherche toujours une solution pour récupérer un int d'un programme java
 
 

Reply

Marsh Posté le 01-07-2009 à 22:02:33    

ghitaik a écrit :

Malheureusement ce n'est pas une solution, car System.exit(n) retourne dans tous les cas 1.
System.exit(0) -> signifie que le programme a été quitté normalement
System.exit(1), System.exit(2), System.exit(n) => signifient que le programme a été quitté à cause d'un problème.
 
Je cherche toujours une solution pour récupérer un int d'un programme java
 
 


 
je comprends pas ton probleme, j'ai l'impression que ca n'a rien a faire ici.
System.exit(n) genere bien un status code n  
 
qu'est-ce que t'essaies de faire au juste ? [:pingouino]

Reply

Marsh Posté le 01-07-2009 à 23:40:50    

J'ai le même problème que le posteur du topic, j'utilise Nagios qui est un outil de monitoring, j'ai implémenté des plugins avec java qui doivent s'intégrer à cet outil, sauf que cet  outil exige un retour d'une valeur int (0, 1, 2,3 ou 4)
puisque java s'exécute à partir de la méthode main() qui retourne void, je cherche un moyen de retourner un int.
 
J'ai songé à System.exit(1)
System.exit(2);
...
System.exit(4);
 
mais malheureusement cette fontion ne retourne pas l'int qu'elle reçoit en argument...

Reply

Marsh Posté le 02-07-2009 à 00:15:43    

Code :
  1. public class Go{
  2.     public static void main(String[] args){
  3.         if (args == null || args.length==0){
  4.             System.exit(0);
  5.         }else{
  6.             System.exit(Integer.parseInt(args[0]));
  7.         }
  8.     }
  9. }


 


> java Go
> echo $?
0
> java Go 42
> echo $?
42
 


 
chez moi ca marche  [:souk]

Reply

Marsh Posté le 21-07-2009 à 23:11:56    

pourquoi tu ne utilise pas une valeur static qui egale 0 ou 1,2,3,...selon votre teste

Reply

Marsh Posté le 22-07-2009 à 08:40:27    

souk a écrit :

Code :
  1. public class Go{
  2.     public static void main(String[] args){
  3.         if (args == null || args.length==0){
  4.             System.exit(0);
  5.         }else{
  6.             System.exit(Integer.parseInt(args[0]));
  7.         }
  8.     }
  9. }


 


> java Go
> echo $?
0
> java Go 42
> echo $?
42
 


 
chez moi ca marche  [:souk]


Et sous windows, ca marche aussi, comme le montre ce batch:

Code :
  1. @echo off
  2. REM trick to set errorlevel to 1
  3. COLOR 00
  4. ECHO BEFORE CALL %errorlevel%
  5. call java Go 999
  6. ECHO AFTER CALL %errorlevel%


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed