Je suis familier avec l'utilisation du os.system pour exécuter à partir de la ligne de commande. Cependant, j'aimerais pouvoir exécuter un fichier jar depuis l'intérieur d'un dossier spécifique, par exemple. mon dossier 'test'. C'est parce que mon pot (situé dans mon dossier 'test') nécessite un fichier à l'intérieur de mon dossier 'test'. Alors, comment pourrais-je écrire une fonction dans mon script qui fait ce qui suit: c:\test>java -jar run_this.jar required_parameter.ext
? Je suis un débutant python donc les détails sont grandement appréciés. Merci d'avance.Comment puis-je obtenir mon script python (version 2.5) pour exécuter un fichier jar dans un dossier au lieu de la ligne de commande?
Répondre
Voici un petit script pour vous aider à démarrer. Il y a des façons de le rendre «meilleur», mais ne pas connaître toute la portée de ce que vous essayez d'accomplir devrait suffire.
import os
if __name__ == "__main__":
startingDir = os.getcwd() # save our current directory
testDir = "\\test" # note that \ is windows specific, and we have to escape it
os.chdir(testDir) # change to our test directory
os.system("java -jar run_this.jar required_paramter.ext")
os.chdir(startingDir) # change back to where we started
ce code fonctionne très bien :) merci! –
En général: Utilisez os.chdir pour modifier le répertoire du processus parent, puis os.system pour exécuter le fichier jar. Si vous avez besoin de garder le répertoire de travail de Python stable, vous devez retourner au répertoire de travail d'origine - vous devez l'enregistrer avec os.getcwd().
Sous Unix: créez explicitement un processus fils avec os.fork. Dans le parent, attendez l'enfant avec os.waitpid. Dans l'enfant, utilisez os.chdir, puis os.exec pour lancer java.
Pourquoi os.system de préférence à subprocess.Popen? –
Personnellement, je trouve l'API de sous-processus trop surchargée pour un débutant (même si elle permet de spécifier le cwd du nouveau processus, rendant la restauration inutile). –
- 1. Comment copier des fichiers avec une extension de fichier spécifique dans un dossier de mon script python (version 2.5)?
- 2. Comment exécuter un fichier JAR
- 3. En utilisant Python pour exécuter une commande sur chaque fichier dans un dossier
- 4. Comment exécuter un script PHP à partir de la ligne de commande avec MAMP?
- 5. Comment exécuter un fichier .jar dans le système d'exploitation S60?
- 6. Exécuter fichier jar J2ME
- 7. Comment empaqueter une ligne de commande Script Python
- 8. Lancer une commande shell avec un script python, attendez la fin et revenir au script
- 9. Comment lancer un fichier .jar sous UNIX?
- 10. Dossier de fichier JAR pour les projets eclipse
- 11. Réglez Snow Leopard pour utiliser Python 2.5 au lieu de 2.6
- 12. Utilisation de CruiseControl pour copier le dossier SVN de la tête dans un dossier Release
- 13. Comment devrais-je utiliser un fichier jar?
- 14. Modifier un fichier XML dans un fichier jar avec Java
- 15. Historique de ligne de commande Python persistant
- 16. Comment exclure un jar externe lors de la création d'un fichier exécutable en eclipse ou en ligne de commande?
- 17. Comment exécuter un script PowerShell à partir de SSIS
- 18. Comment obtenir l'emplacement d'un fichier dans un script WiX
- 19. Comment puis-je exécuter un programme exécutable à partir de la ligne de commande sans taper son chemin d'accès complet?
- 20. Puis-je spécifier un fichier persistence.xml compatible JPA sur la ligne de commande java?
- 21. Comment puis-je obtenir un handle de fichier à partir de la ligne de commande?
- 22. comment ajouter une classe java à un dossier dans un fichier jar
- 23. Comment puis-je créer un fichier batch pour exécuter la même commande cloc en un clic?
- 24. Comment exécuter un script Perl depuis un script Perl?
- 25. Comment exécuter chaque script dans un répertoire sauf lui-même?
- 26. Comment obtenir un nom de script dans un fichier de comptabilité de processus BSD?
- 27. Comment exécuter un script .csh avec des arguments de ligne de commande à partir du script .csh
- 28. Exécution de la commande au lieu de l'impression
- 29. Redirection de la sortie vers un argument de ligne de commande d'une autre commande dans Windows
- 30. Outil de ligne de commande pour créer un script pour des tables MSSQL spécifiques
Essayez de fournir les parties de votre script qui ne fonctionnent pas. Pas tout, mais un morceau de code qui illustre votre problème. –