Appelez le script python dans le code Java (runtime.exec)

J’essaie de lancer un script python dans java mais j’ai des problèmes. J’utilise la commande ci-dessous pour exécuter le script python qui se trouve dans un dossier appelé python dans mon projet java:

Runtime r = Runtime.getRuntime(); Process p = r.exec("cmd /c python python\\test.py"); 

Le script doit écrire quelque chose dans un fichier texte et à l’écran, mais après l’exécution via r.exec, cela ne fonctionne pas (rien n’est enregistré ni écrit à l’écran et p.waitFor () renvoie 1, ce qui signifie qu’il n’a pas été écrit). t fonctionne correctement), cela fonctionne cependant dans le terminal. J’ai essayé de placer le script python dans le dossier racine du projet pour voir si l’erreur avait été causée par une erreur de chemin mais je n’ai pas non plus réussi. Comment puis-je faire fonctionner ceci?

Mon SO est Windows 7 et le script python (test.py) que j’essaie d’exécuter est:

 import sys import os def main(): f = open('python/test.txt','w') f.write('It works!') f.flush() f.close() print('It works!') if __name__ == '__main__': main() 

L’exécutable python n’est probablement pas dans le chemin donné au processus enfant. Essayez de changer la ligne de commande pour inclure le chemin d’access complet à l’exécutable python, comme dans

 Process p = r.exec("cmd /cc:\\path\\to\\python python\\test.py");