Cet article décrit la méthode d'implémentation Java pour appeler Jython pour exécuter des fichiers Python. Partagez-le pour votre référence, comme suit:
Pendant le développement Web, vous utilisez souvent des bibliothèques tierces dans l'environnement local dans l'environnement Web. Cet article explique comment Java exécute des fichiers Python.
On dit en ligne qu'il existe trois méthodes, mais en fait il n'y a que deux méthodes. La deuxième méthode est introduite ci-dessous (Jython).
Méthode 1
java.lang.runtime runtime rt = runtime.getRuntime (); try {process proc = rt.exec ("python /tmp/test.py"); } catch (exception e) {e.printStackTrace (); }Voici une sous-conception:
1. Runtime.getRuntime() peut obtenir l'environnement d'exécution du JVM actuel, qui est également le seul moyen de Java à obtenir l'environnement d'exécution.
2. La plupart des autres méthodes sur l'exécution sont des méthodes d'instance, ce qui signifie que getRuntime doit être utilisée chaque fois que l'appel d'exécution est effectué.
3. La méthode de sortie de l'exécution est une méthode pour quitter le JVM actuel, qui est probablement le seul. Parce que j'ai vu cette sortie dans la classe système quitte en fait le JVM en appelant Runtime.exit() . Ici, je vais expliquer les règles générales de Java pour la valeur de retour de l'exécution (également mentionnée plus loin). 0 représente la sortie normale et non 0 représente un avortement anormal. Ce n'est qu'une règle Java. Il y aura toujours une certaine confusion mineure dans chaque système d'exploitation.
Le deuxième type (point clé)
Appeler Jython API
Étape 1: ajouter des dépendances
<! - https://mvnrepository.com/artifact/org.python/jython -> <dependency> <proupId> org.python </proupId> <artifactId> Jython </artfactId> <version> 2.7.0 </-version> </dependency>
Étape 2: Créez un nouveau test.
import org.python.util.pythoninterpreter; import java.util.properties; / ** * Auteur: Rencontrez Xiaoxing * Courriel: [email protected] * Date: 17-3-21 * Temps: 8:18 PM * décrire: Jpython Test * / Public Class Test {Public Static Void Main (String [] Args) {Pthetter Pythoninterpreter (); interprète.exec («jours = (« mod »,« mar »,« mer »,« thu »,« ven »,« same »,« soleil »);»); interprète.exec ("Print Days [1];"); interpréter.execfile ("/ tmp / test.py"); Interpreter.exec ("Print 'créé par Tengxing sur 2017.3'" "); }}
Étape 3: Exécutez Test.java
Les tests ont commencé à 21h40 ... Tuethis est test.pyreated par Tengxing le 2017.3!
Le processus s'est terminé, le code de sortie 0
Le rappel peut signaler l'exception suivante:
Exception dans le thread "Main" Importor: Import Importer le module du site et ses dépendances: Aucun module nommé site
Déterminez si les attributs suivants sont corrects:
Raison: python.import.site n'est pas initialisé
résoudre:
classe publique test {public static void main (String [] args) {Properties props = new Properties (); propuls.put ("python.home", "chemin vers le dossier lib"); props.put ("python.console.encoding", "utf-8"); props.put ("Python.Security.RespectJavaAccessibility", "false"); props.put ("python.import.site", "false"); Propriétés Preprops = System.getProperties (); Pythoninterpreter.Initialize (preprops, accessoires, nouvelle chaîne [0]); Pythoninterpreter interprète = new pythoninterpreter (); interprète.exec («jours = (« mod »,« mar »,« mer »,« thu »,« ven »,« same »,« soleil »);»); interprète.exec ("Print Days [1];"); interpréter.execfile ("/ tmp / test.py"); Interpreter.exec ("Print 'créé par Tengxing le 2017.3!'"); }}Ok parfait
// Appelez la méthode en python et imprimez le résultat pyfunction func = (pyfonction) interprère.get ("adder", pyfonction.class); int a = 2010, b = 2; pyobject pyobj = func .__ Call __ (new pyinteger (a), new pyinteger (b)); System.out.out.println ("aner =" pyobj.toString ());Article de référence:
//www.vevb.com/article/137380.htm
//www.vevb.com/article/137385.htm
Pièce jointe: Jython.jar Cliquez ici pour télécharger ce site .
Pour plus de contenu lié à Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Tutoriel de structure de données Java et d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.