Prog standalone lance par crontab sous Unix - Java - Programmation
Marsh Posté le 13-08-2003 à 10:15:58
bin tu mets dans ton cron exactement ce que tu ferais si tu devais lancer ton soft quoi
Tu fais ton prog stand alone comme tu le ferais habituellement, tu compiles et tu dois avoir une ligne du genre
java -cp $TON_CLASSPATH org.company.soft.Main args1 args2
tu fous cette ligne dans un ficher sh et tu inclus ca dans la définition de ton crontab
Je ne comprends pas ton problème? Tu sais démarrer un prog Java en ligne de commande?
Note: le classpath est très important (pas faire des conneries genre prendre le classpath de l'utilisateur courant, c'est bon pour les amateurs ce genre de truc)
Marsh Posté le 13-08-2003 à 10:37:45
DarkLord a écrit : |
+1
Marsh Posté le 13-08-2003 à 10:49:10
Beh mon probleme...c'est que j'ai des erreurs qd je lance le prog...du genre Exception in thread "main" java.lang.NoClassDefFoundError:
J'ai du oublier quelque chose...d'ou ma question...
j'avais prévenu que c t une question con!
Marsh Posté le 13-08-2003 à 10:50:46
Ben33 a écrit : |
d'ou la réponse de dark : fixe correctement le classpath
Marsh Posté le 13-08-2003 à 11:07:48
note imporante concernant le cron, ne jamais utiliser "répertoire courant" tel quel. Autrement dit, si tu dois etre dans /home/toto/app pour lancer ton cron tu dois faire un
cd /home/toto/app *explicite* au début de ton script bash
Marsh Posté le 13-08-2003 à 11:18:31
je te conseille de créer un batch qui aura pour but de lancer ton prog et d'enregistrer ce batch dans la crontab.
et je te conseille pas de modifier le classpath système. De toute façon, c'est en générale une mauvaise habitude de l'utiliser : mieux vaut le fixer en ligne de commande.
fait un batch du genre :
Citation : #!/bin/ksh |
Marsh Posté le 13-08-2003 à 11:19:57
pq tu répètes tout ce que je dis?
Marsh Posté le 13-08-2003 à 11:20:35
DarkLord a écrit : pq tu répètes tout ce que je dis? |
Marsh Posté le 13-08-2003 à 13:23:09
Merci beaucoup a tous les deux.
Ca évitera de faire de mauvaises choses...
Marsh Posté le 14-08-2003 à 02:02:00
DarkLord a écrit : note imporante concernant le cron, ne jamais utiliser "répertoire courant" tel quel. Autrement dit, si tu dois etre dans /home/toto/app pour lancer ton cron tu dois faire un |
~/app
si tu sais meme pas ça tu ferais mieux d'éviter de la ramener
(ceci est une private joke, les gens, pas la peine de vous exciter )
Marsh Posté le 14-08-2003 à 08:53:44
the real moins moins a écrit : |
ca dépend sous quel user on ajoute le cron hein (genre si c'est root )
bon cela étant -->
Marsh Posté le 14-08-2003 à 12:04:58
ben ça change quoi si c'est root
le home de root c'est /root et?
Marsh Posté le 14-08-2003 à 12:09:06
the real moins moins a écrit : ben ça change quoi si c'est root |
si tu veux aller chercher un script dans /home/toto/bin/tumenerves.sh et que tu ajoutes le cron en tant que root ...
Marsh Posté le 14-08-2003 à 12:10:59
bah forcément
de meme si tu es user toto et que tu veux aller le chercher dans /tmp/pouet/tralala
au fait, en tant que root, tu peux setter le cron d'un user avec crontab -u darklord
Marsh Posté le 14-08-2003 à 12:13:17
the real moins moins a écrit : |
je sais
Marsh Posté le 14-08-2003 à 12:14:41
ReplyMarsh Posté le 14-08-2003 à 12:19:14
Reply
Marsh Posté le 13-08-2003 à 10:02:23
La question est unn peu con je le reconnais...
Je fournis donc le .class a la crontab pour qu'elle l'exécute toutes les 5 minutes...
Je dois pouvoir interagir avec une share memory...
Donc comment faire mon prog stand alone..?
Je suppose qu'il me faut un main dans ce programme...et que c'est ce main qui sera appelé par la crontab?