Importieren Sie Klassen in JAR-Dateien direkt aus dem Python-Skript

Dies ist eine Methode zum Importieren der Klasse in die JAR-Datei direkt aus dem Python-Skript.

Dies hängt nicht von CLASSPATH ab. Wenn Sie also eine Umgebung haben, in der Java und Jython ausgeführt werden können Es macht es möglich, die Integration zwischen Python und Java einfach zu verpacken.

Dies ist beispielsweise nützlich, wenn Sie Javas Legacy und SQLite gleichzeitig in Python verwenden möchten. Jython ist ein Standardmodul und unterstützt SQLite nicht. Daher ist ein JDBC-Treiber erforderlich. Wenn Sie die JAR-Datei des JDBC-Treibers direkt aus dem Python-Skript lesen können, Sie können Java-Klassen und SQLite aus Python verwenden, indem Sie einfach die erforderlichen Dateien eingeben.

Spielen Sie mit sys.path

test.py


import.sys
sys.path.append("/path/to/hogehoge.jar")
import Hogehoge

Es funktioniert mit! Es gab Informationen, dass es nutzlos war. Es scheint, dass Sie die Klassen darin laden müssen, nicht nur durchlaufen müssen.

ClassPathHacker

ClassPath Hacker scheint eine Lösung zu sein. http://www.jython.org/jythonbook/en/1.0/appendixB.html#working-with-classpath

Das Folgende ist ein Beispiel für das Aufrufen des JDBC-Treibers von SQLite aus Jython.

test2.py


from java.lang import Class
from java.sql import DriverManager

class classPathHacker:
    import java.net.URLClassLoader

    def addFile(self, s):
        sysloader = self.java.lang.ClassLoader.getSystemClassLoader()
        sysclass = self.java.net.URLClassLoader
        method = sysclass.getDeclaredMethod("addURL", [self.java.net.URL])
        method.setAccessible(1)
        f = self.java.io.File(s)
        method.invoke(sysloader, [f.toURL()])

c = classPathHacker()
c.addFile("/path/to/sqlite-jdbc.jar")
jdbc_url = "jdbc:sqlite:/path/to/database.db"
driver = "org.sqlite.JDBC"
Class.forName(driver).newInstance()
con = DriverManager.getConnection(jdbc_url)
#Unten

Ich bin nicht sicher, aber mache URLClassLoader.addURL zwangsweise zugänglich Es sieht so aus, als würden Sie eine Klasse laden.

Recommended Posts

Importieren Sie Klassen in JAR-Dateien direkt aus dem Python-Skript
Importieren Sie Skripte dynamisch in Python
Extrahieren Sie mit Python Zeichenfolgen aus Dateien
Python aus oder importieren
So laden Sie Dateien von Selenium of Python in Chrome herunter
OCR aus PDF in Python
Kopieren Sie mit Python rekursiv Dateien aus dem Verzeichnis direkt unter dem Verzeichnis
Erlauben Sie Python, die Zeichenfolge der Eingabedatei aus dem Ordner auszuwählen
Verschieben von CSV-Dateien mit Python Teil 1
Arbeiten mit LibreOffice in Python: Importieren
Bearbeiten Sie Dateien und Ordner in Python
Lesen und verwenden Sie Python-Dateien aus Python
Umgang mit JSON-Dateien in Python
Laden Sie Google Drive-Dateien in Python herunter
Über Python, aus und importieren, als
Sortieren Sie große Textdateien in Python
Lesen Sie Dateien parallel zu Python
Führen Sie Python-Skripte synchron von C # aus
Exportieren und Ausgeben von Dateien in Python
python> link> from __future__ import print_function> Erlaube die Verwendung von Python 3.X print () in Python 2.X.
Überprüfen Sie die installierten Module im Python-Skript
Führen Sie das Python-Skript in Cisco Memorandum_EEM aus
Lesen aus Textdateien und SQLite mit Python (+ Pandas), R, Julia (+ DataFrames)
Rufen Sie Optionen in Python sowohl aus JSON-Dateien als auch aus Befehlszeilenargumenten ab
Suchen Sie nach Dateien wie Linux Find in Python
Ausgabebaumstruktur von Dateien in Python
Wiederbelebt von "kein Internetzugang" in Python
Verhindern Sie den doppelten Start von cron in Python
Ein Forscher eines Pharmaunternehmens fasste die Klassen in Python zusammen
PUT gzip direkt in S3 in Python
Geben Sie Anmerkungen für Python2 in Stub-Dateien ein!
Ich möchte ein Glas aus Python verwenden
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Referenz der INI-Datei in Python oder Ruby
Ich kann Python-Skripte in Eclipse nicht debuggen
Vorlage zum Schreiben von Batch-Skripten in Python
Automatisieren Sie Jobs, indem Sie Dateien in Python bearbeiten
Laden Sie Bilder von der URL-Liste in Python herunter
Holen Sie sich den Batteriestand von SwitchBot mit Python
Lesen und schreiben Sie JSON-Dateien mit Python
Beispiel für den Umgang mit EML-Dateien in Python
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck
In Python von Markdown in HTML konvertieren
Holen Sie sich mit Python die Niederschlagswahrscheinlichkeit aus XML
Laden Sie Dateien in jedem Format mit Python herunter
Modulimport und Ausnahmebehandlung in Python
Importfehler: Kein Modul mit dem Namen 'xxxxx' in Python3
Abrufen des Metrikverlaufs von MLflow in Python
Ich möchte Variablen / Funktionen / Klassen externer Dateien von Python abrufen / ausführen
Senden Sie eine E-Mail direkt, indem Sie einen MX-Eintrag von Ihrer E-Mail-Adresse in Python abrufen
Holen Sie sich mit Python Zeitreihendaten von k-db.com
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Konvertieren Sie die FBX-Datei in Python in ASCII <-> BINARY
Studie aus Python Hour7: Verwendung von Klassen
Excel-Datei aus Python importieren (in DB registriert)
Studie aus Python Lesen und Schreiben von Hour9-Dateien
Beheben Sie den japanischen Schreibfehler UnicodeEncodeError in der Python-Datei
Von der Datei zur Diagrammzeichnung in Python. Grundstufe Grundstufe