2 Stimmen

Steuerung der Ausführung eines Jython-Skripts von Java aus

Ich versuche, die Ausführung eines Jython-Skripts von Java aus zu steuern und durch einen Aufruf von PythonInterpreter.exec() auszuführen. Das Skript enthält Aufrufe zu Klassen, die in Java definiert sind. Ich werde diese Klassen für die Diskussion hier "Befehle" nennen. Die Befehle können auch auf einem anderen Rechner über RMI ausgeführt werden.

Da die Ausführung der Befehle eine Weile dauert, möchte ich den Fortschritt der Befehlsausführung auf der Aufruferseite überprüfen, z. B. wie viel Prozent der Ausführung abgeschlossen ist. Ich kann den Klassen eine getProgress()-Methode zur Verfügung stellen, aber der Zugriff auf diese Methode scheint unmöglich zu sein, da PythonInterpreter dem Aufrufer keinen Zugriff auf das darin laufende Befehlsobjekt erlaubt.

Haben Sie eine Idee, wie man das machen kann?

2voto

Blauohr Punkte 5967

Meine 0,10 Eur : (ist nicht einfach)

Bauen Sie eine Fabrik, wie beschrieben in

http://wiki.python.org/jython/JythonMonthly/Articles/September2006/1

und ein Java-Interface, das eine Skript-Klasse (IJScript) darstellt (einschließlich der Methoden run() und getProgress())

sollten Ihre Skripte dann wie folgt aussehen:

class xyscript(IJScript) :

def __init__(self) :
   ...
def run(self) :
   ...
def getProgress(self) :
   ....

Ihre Skripte beim Zugriff auf die Schnittstelle IJScript (die Java-Schnittstelle) ausführen (siehe das Beispiel des Mitarbeiters)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X