J'ai un fichier jar que j'ai créé et qui peut générer un fichier PDF. Je l'ai appelé à partir de la ligne de commande comme celui-ci -Call jar from PHP
java -jar project.jar 'Author, An---A Title'
Cela fonctionne bien, mais quand je l'appelle le même fichier jar à partir d'un fichier PHP avec le code suivant crée un fichier avec le nom correct mais son vide et a zéro octet.
<?php
echo exec("java -jar project.jar 'Author, An---A Title'");
?>
Je suis sûr que cela est un problème pas avec le pot (car il fonctionne à partir de la ligne de commande) et je suis presque sûr que ce ne est pas à partir du fichier PHP (car il a créé le fichier vide, il doit ont été lus), donc je pense que le problème pourrait être avec les autorisations sur le répertoire? J'utilise linux et le PHP fonctionne avec XAMMP qui se trouve dans le répertoire OPT. Des idées?
Merci d'avance.
Est-ce votre JAR ou celui d'un tiers? Laquelle? Comprenez-vous Java? – BalusC
Je l'ai fait beaucoup de fois, cela devrait fonctionner comme prévu. Peut-être que c'est un problème d'utilisateur/droit. Avez-vous appelé la ligne de commande avec le même utilisateur que celui utilisé par votre serveur/php? – Timo
Si vous pouvez "su" à l'utilisateur qu'Apache exécute que vous pouvez tester votre théorie des autorisations. 'su apache; java -jar ..etc..Peut ne pas fonctionner, l'utilisateur Apache n'a souvent pas de shell. Pourrait avoir besoin d'un travail de détective pour trouver l'utilisateur sur lequel Apache fonctionne, essayez 'ps aux | grep apache' ou 'ps aux | grep httpd'. L'utilisateur devrait être la première colonne de la sortie 'ps' – Robin