Seite 1 von 1

Python Libraries in Java .jar File bereitstellen

Verfasst: Mittwoch 12. September 2012, 09:33
von Apotekarnes
Hallo allerseits,

ich habe folgendes Problem:

Ich habe auf einem Linux-Rechner ein Java-Tool mit GUI programmiert, welches auf einen Button-Klick hin ein Python-Skript (Prozess über System-Call) startet. Dieses Python-Skript benutzt (importiert) Libraries wie "Matplotlib".
Das ist auf dem Linuxrechner kein Problem, da diese Libraries dort schon installiert sind.

Nun will ich das JAR-File auf beliebigen Windowsrechnern laufen lassen. Das Problem ist, dass dort "Matplotlib" höchstwahrscheinlich nicht installiert ist.

Gibt es eine Möglichkeit, Python-Libraries irgendwie mitzuliefern, indem man sie im JAR-File an entsprechender Stelle ablegt?

Alle Lösungsvorschläge sind herzlich willkommen.

Viele Grüße,
Apotekarnes

Re: Python Libraries in Java .jar File bereitstellen

Verfasst: Mittwoch 12. September 2012, 09:41
von snafu
Es gibt die Möglichkeit, Python-Files samt verwendeter Bibliotheken in eine einzige EXE-Datei zu packen. Diese EXE-Datei könnte dann als Programmaufruf ausgeführt werden, ähnlich wie du es jetzt schon machst. Das Einbinden einer solchen Ressource in ein JAR-File ist bestimmt auch möglich. Zu letzterer Frage können aber andere Leute sicherlich kompetenter antworten als ich, da ich das Einbinden von Ressourcen bisher nicht gemacht habe.

Re: Python Libraries in Java .jar File bereitstellen

Verfasst: Mittwoch 12. September 2012, 12:34
von BlackJack
@snafu: Von einem JAR würde ich erwarten dass es plattformunabhängig ist. Das ist es nicht mehr wenn da Binärcode für ein bestimmtes System und eine bestimmte Hardware drin steckt.

Re: Python Libraries in Java .jar File bereitstellen

Verfasst: Mittwoch 12. September 2012, 13:05
von Apotekarnes
@snafu: Habe nun sowohl PyInstaller als auch py2exe ausprobiert und mit beiden keine lauffähigen EXE-Dateien zustande gebracht. Das Problem waren immer irgendwelche Libraries, die im Python-Skript/der EXE-Datei importiert werden. Von diesen importiere ich ziemlich viele und es ist ein Alptraum die Umwandlung dafür zu konfigurieren.

@BlackJack:
Ja, ich tendiere auch eher in diese Richtung.

Kann nicht Java beim Erstellen der .JAR alles nötige reinpacken?

Re: Python Libraries in Java .jar File bereitstellen

Verfasst: Mittwoch 12. September 2012, 13:18
von deets
@Apotekarnes

Alles noetige reinpacken ist genau das, was py2exe machen. Wenn es das nicht tut, musst du irgndwie von Hand Rezepte schreiben, die das erledigen. Wenn du das komplett selbst machen willst, dann wird das eher noch komplexer.