Python in Java ausführen

Diskutiere Python in Java ausführen im Allgemeine Java-Themen Bereich.
L

leesrott

Moin Zusammen,

ich bin neu hier im Forum und wäre dankbar, wenn mir jemand helfen könnten. Ich möchte ein Python Script innerhalb von Java-Code ausführen. Leider scheitert schon das Hallo World Beipiel, weil die Klasse PythonInterpreter nicht gefunden wird und ich nicht weiß, was ich installieren muss, damit sie gefunden werden kann. Der Code lautet
Java:
import org.python.util.PythonInterpreter;

public class JythonHelloWorld {
  public static void main(String[] args) {
    try(PythonInterpreter pyInterp = new PythonInterpreter()) {
      pyInterp.exec("print('Hello Python World!')");
    }
  }
}
Ich arbeite unter Manjaro Linux. Installiert habe ich bereits jython. Wenn ich über die Console mit javac kompiliere, lautet die Fehlermeldung:
Code:
JythonHelloWorld.java:1: error: package org.python.util does not exist
import org.python.util.PythonInterpreter;
                      ^
JythonHelloWorld.java:5: error: cannot find symbol
    try(PythonInterpreter pyInterp = new PythonInterpreter()) {
        ^
  symbol:   class PythonInterpreter
  location: class JythonHelloWorld
JythonHelloWorld.java:5: error: cannot find symbol
    try(PythonInterpreter pyInterp = new PythonInterpreter()) {
                                         ^
  symbol:   class PythonInterpreter
  location: class JythonHelloWorld
3 errors
Was fehlt? Hat jemand Erfahrung damit? Danke!
 
H

httpdigest

Wenn du sagst "Installiert habe ich bereits jython." was genau hast du da installiert und wie genau hast du das gemacht?
Wenn du z.B. auf diese Seite gehst https://www.jython.org/download dann verwende den "Standalone" Download. Dort steht:
"Use this to run Jython without installing or to embed Jython in a Java application."
Das gibt dir eine einzige .jar Datei, die du einfach zum Classpath deiner eigenen Anwendung hinzufügen musst.
 
L

leesrott

Das ist ein guter Hinweis. Ich verwende Java 11 und hab die entsprechende jar heruntergeladen. Wenn ich jetzt
Code:
javac JythonHelloWorld.java -cp jython-standalone-2.7.2b2.jar
aufrufe, wird eine class erzeugt. Möchte ich diese aber ausführen
Code:
java JythonHelloWorld
bekomme ich die Meldung
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: org/python/util/PythonInterpreter
    at JythonHelloWorld.main(JythonHelloWorld.java:6)
Caused by: java.lang.ClassNotFoundException: org.python.util.PythonInterpreter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 1 more
 
mihe7

mihe7

Du musst beim Ausführen schon auch die jar mitgeben:
Java:
java -cp jython-standalone-2.7.2b2.jar:. JythonHelloWorld
 
Thema: 

Python in Java ausführen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben