comment rediriger le flux de sortie d'un programme java vers un fichier de tel sort
lorsqu'on exécute ce programme avec un exec php le code php n'attendre pas la fin de programme java et merci.
comment rediriger le flux de sortie d'un programme java vers un fichier de tel sort
lorsqu'on exécute ce programme avec un exec php le code php n'attendre pas la fin de programme java et merci.
moi j'utilise exec php pour exécuter ce programme java mais exec bloque le code et il attendre la fin de l’exécution du java or je voudrai que exec lance le code java et le code php se termine tranquillement
Autrement dit, c'est, comme le dit Robin56, une question liée à php et pas à java. Et le manuel php explique comment faire :
a+In order to execute a command have have it not hang your php script while it runs, the program you run must not output back to php. To do this, redirect both stdout and stderr to /dev/null, then background it.
> /dev/null 2>&1 &
In order to execute a command and have it spawned off as another process that is not dependent on the apache thread to keep running (will not die if somebody cancels the page) run this:
exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');
Même problème c'est vrai le sortie du java est redirigé vers un fichier mais le script php se bloque, j'ai besoin d'une autre solution dans le code java j'ai essayé avec les Thread et rien ne change
Sans voir ton code, je dirais que tu ne lances pas ta commande en tache de fond. Est ce que tu peux poster le code de ta commande (c'est à dire la commande php exec)? Et en profiter pour nous dire l'OS sur lequel tourne ton serveur?
Voila la commande exec:
exec('java mon_programme ee.log download 5fef9d883b205d06ccdaf22b84fc896a761af6badab070958d3dc75090de28361799c427cdad1ed31fa4c185385702924eed3af3099a252fb1fd22f6cde4b323f5ca5716912c94ad2f03193e302bc32d85b483969d85b5030eec7158edde92f2bcf799670185bce260508238e8f78543b2586a823914cf331d12969cae8b627bb56348f4677bf103e63886d57ecf0322356bd72d54f63c388fbb3b1185b34db0e677cc803aa54ef6ae75d87946ab39f10bd1abeb493eff16afccce01a6c3d51aab862362c450fc6252681c0ab4c79e49 01b9127921054918fb8a26173ef00c8620a51f89a78107065d34e5f2fbbcf7bb78bfc2f9bce5c8c1cfd18b77d5d55174391c5578fd0a1ac067517b5574d52ae7 > d:/a/null 2>&1 &"');
et je travail sur windows avec Wamp et lorsqu'on met echo 'Fin'; il affiche 'fin' après que le programme java se termine, je voudrai qu'il affiche 'fin' directement sans attendre la fin du programme java
Euh ? Le PHP d'un wamp est vraiment censé gérer cette syntaxe "> d:/a/null 2>&1 &" à la fin ? Déjà que j'aurais des doutes sous unix...
Et puis, même question : pourquoi une question PHP ou Windows est discutée en section Java ? Et pourquoi la discussion s'appelle-t-elle "redirection de flux", c'est quoi le rapport avec les flux ?
Tu peux essayer de passer par un .bat intermediaire qui lui lance réellement ta commande (java monprogramme > trace.log) et dans ton php tu fais un exec("start tutu.bat").
Même problème php attendre la fin de l’exécution du programme java
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager