In diesem Artikel wird hauptsächlich das Beispiel des JPype-Aufrufs von JAVA in Python vorgestellt. Der Herausgeber findet es recht gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz verwenden. Kommen Sie und werfen Sie einen Blick mit dem Editor
1. Kurze Einführung in JPype
1.
JPype ist ein Tool, das es Python-Code ermöglicht, Java-Code einfach aufzurufen und so die Mängel von Python in einigen Bereichen (z. B. serverseitige Programmierung) zu überwinden.
2. Was ist der Unterschied zwischen JPype und Jython (dem Nachfolger von JPython)?
1) Verschiedene Laufumgebungen: Jython läuft auf JVM, während die eigentliche Laufumgebung von JPype immer noch Python-Laufzeit ist, aber während des Betriebs wird ein eingebetteter JVM gestartet
2) Benutzer sind unterschiedlich: Jython ist für Java-Programme und JPype ist für Python-Programmierer.
2. JPype-Installation
1. Installieren Sie zuerst Python2.7 und JAVA1.6
2. Installieren Sie JPype- 0.5.4.2.win32-py2.7.exe(http://sourceforge.net/projects/jpype/files/JPype/0.5.4/)
3.Ubuntu12.04 Installationsbefehl: sudo apt- Holen Sie sich die Installation von python-jpype
3. JPype-Nutzungsanweisungen
1. Starten Sie JVM
Die von JPype bereitgestellte Funktion startJVM() wird zum Starten der virtuellen JAVA-Maschine verwendet. Bevor nachfolgender JAVA-Code aufgerufen wird, muss diese Methode aufgerufen werden, um die virtuelle JAVA-Maschine zu starten.
Definition von jpype.startJVM()
startJVM(jvm, *args)
Parameter von jpype.startJVM()
Parameter 1: jvm, beschreiben Sie jvm.dll in Ihrem System Der Pfad, in dem sich die Datei befindet, z. B. „C:ProgrammeIBMJava50jrebinj9vmjvm.dll“. Der Standard-JVM-Pfad kann durch Aufrufen von jpype.getDefaultJVMPath() abgerufen werden.
Parameter 2: args, ein optionaler Parameter, der von JPype als Startparameter der Java Virtual Machine direkt an JVM übergeben wird. Hier sind alle legalen JVM-Startparameter geeignet, wie zum Beispiel:
-agentlib:libname[=options] -classpath classpath -verbose -Xint
2. Fahren Sie die JVM herunter
Nachdem Sie die JVM verwendet haben, können Sie jpype.shutdownJVM übergeben () Zum Herunterfahren der JVM verfügt diese Funktion über keine Eingabeparameter. Wenn das Python-Programm beendet wird, wird die JVM automatisch heruntergefahren.
3. Verweisen auf Java-Erweiterungspakete von Drittanbietern
Oft müssen Java-Erweiterungspakete von Drittanbietern in Python-Projekten aufgerufen werden, was ebenfalls eine wichtige Verwendung darstellt von JPype.
Durch Hinzufügen von -Djava.class.path=ext_classpath zum JVM-Startparameter können Sie vorhandene Java-Erweiterungspakete im Python-Code aufrufen.
4. Zugriff auf JAVA-Systemeigenschaften
Manchmal müssen einige Java-Anwendungen Systemeigenschaften in der JVM festlegen oder abrufen.
Beispiel für das Festlegen von Systemvariablen beim Start der JVM:
Fügen Sie die folgenden Parameter zu den JVM-Startparametern hinzu:
-Dproperty=value
4. Beispiele
1. Rufen Sie die JAVA-API direkt auf
from jpype import * import os.path startJVM("C:/Java/jdk1.6.0_10/jre/bin/client/jvm.dll", "-ea") java.lang.System.out.println("hello World") shutdownJVM()
2 Erweiterungspaket
1) Benutzerdefiniertes JAVA-JAR-Paket eines Drittanbieters: Packen Sie die JpypeDemo-Klasse als jpypedemo.jar-Datei und speichern Sie sie im Verzeichnis F:/sample_Py
package jpype; public class JpypeDemo { public String sayHello(String user){ return "hello" + user; } public int calc(int a, int b){ return a + b; } }
2) Python Aufrufabschnitt JAVA-JAR-Paketprogramm eines Drittanbieters
from jpype import * import os.path jarpath = os.path.join(os.path.abspath('.'), 'F:/sample_Py/') startJVM("C:/Java/jdk1.6.0_10/jre/bin/client/jvm.dll","-ea", "-Djava.class.path=%s" % (jarpath + 'jpypedemo.jar')) #ubuntu 中startJVM("/home/geek/Android/jdk1.6.0_43/jre/lib/i386/server/libjvm.so","-ea", "-Djava.class.path=%s" % (jarpath + 'XXX.jar')) JDClass = JClass("jpype.JpypeDemo") jd = JDClass() #jd = JPackage("jpype").JpypeDemo() #两种创建jd的方法 jprint = java.lang.System.out.println jprint(jd.sayHello("waw")) jprint(jd.calc(2,4)) shutdownJVM()
3. Zugriff auf JAVA-Systemeigenschaften
Angenommen, die Eigenschaft, die Sie festlegen möchten, heißt yourProperty und der Eigenschaftswert ist yourValue.
1) Beispiel für das Festlegen von Systemvariablen beim Start von JVM
import jpype jvmPath = jpype.getDefaultJVMPath() jvmArg = “ -DyourProperty=yourValue ” if not jpype.isJVMStarted(): jpype.startJVM(jvmPath,jvmArg)
2) Beispiel für das Festlegen von Systemvariablen im Programm
import jpype prop = “ yourProperty ” value = “ yourValue ” system = jpype.JClass('java.lang.System') system.setProperty(str(prop),str(value))
3) Abrufen von Systemvariablen in das Programmbeispiel
import jpype prop = “ yourProperty ” system = jpype.JClass('java.lang.System') value = system.getProperty(str(prop))
Das obige ist der detaillierte Inhalt vonBeispiel für die Verwendung von JPype zum Aufrufen von Java in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!