Bonsoir,
J'ai crée une appliaction d'auto browsing tout fonctionne a merveille, avant de demarrer l'application je doit lancer un .jar en ligne de commande ce qui donne:

java -jar nomduprogramme.jar

Alors que moi j'aimerai lancer ce programme automatiquement au debut de mon application ce qui donne:

<?php
exec('start java -jar "C:\\...\nomduprogramme.jar"');
// Ensuite le reste du code de mon application
?>

Le probleme c'est que le programme .jar doit rester ouvert pendant que mon application est lancé alors le probléme que je recontre c'est que lorsque le "exec" est lancé, le reste de mon application ne se lance pas car le .jar est toujours ouvert.

Merci.

6 réponses


maxslayer44
Réponse acceptée

Bonjour,

Tu as deux solutions qui s'offrent à toi. La première, expérimentale, c'est d'utiliser la librairie reactphp pour que ton application soit asynchrone et que ta commande s'éxécute sans bloquer le code. Par contre c'est peu documenté et peu stable pour le moment.
La deuxième solution, c'est d'utiliser les threads, voici une librairie pour le faire, par contre il faut que tu puisse activer l'extension PCNTL de PHP.
Une autre solution un peu bricolage : tu fais une page permettant de lancer ton application, et une tache cron pour vérifier qu'elle tourne toujours, et si elle est arrêtée, la relancée, tu as de quoi faire ça ici.

Bonne journée ^^

maxslayer44
Réponse acceptée

Sur un mutualisé ça dépend de la configuration de PHP. tu peux vérifier ça avec php_config ou sur la fiche produit de ton offres d'hébergement.
Mais pour le mutualisé le cron est quand même la solution la plus simple à mettre en place car indépendante de ta configuration de PHP.
Après, si tu t'y connais un peu en admin sys (et si tu as le temps), tu peux prendre un VPS, c'est à peu près les mêmes prix que du mutualisé mais tu as la main sur la configuration.

Mehdi Kamil
Auteur
Réponse acceptée

J'ai finalement opté pour

    popen("start java -jar file.jar","r");

Sa fonctionne à merveille. :)

J'up le message.

Merci pour votre réponse, mais j'ai toujours cette question qui tourne dans ma tête au niveau des extensions si j'héberge mon application sur un hebergement mutualisé elle marchera ?

Merci beaucoup, tes reponse sont tres instructive ! Bonne continuation à toi !