Wie ruft man mit Python ein Python-Skript in einer JAR-Datei auf?

Ich arbeite an einer Anwendung, die eine Reihe von Jython- und Java-Code einstreut. Aufgrund der Art des Programms (mit wsadmin) sind wir wirklich auf Python 2.1 beschränkt

Wir haben derzeit eine JAR-Datei, die sowohl Java Source- als auch .py-Module enthält. Der Code wird derzeit mit Java aufgerufen, aber ich möchte dies entfernen, um so viele Funktionen wie möglich auf Jython zu migrieren.

Das Problem, das ich habe, ist, dass ich Python-Module in die vorhandene JAR-Datei eines aufrufenden Jython-Skripts importieren oder ausführen möchte. Ich habe ein paar verschiedene Möglichkeiten ausprobiert, ohne Erfolg.

Meine Verzeichnisstruktur sieht wie folgt aus:

application.jar
  |-- com
       |--example
            |-- action
                 |-- MyAction.class
                 |-- pre_myAction.py

Der erste Ansatz, den ich versuchte, bestand darin, Importe aus dem Glas durchzuführen. Ich habe die jar zu meinem sys.path hinzugefügt und versucht, das Modul mit beiden zu importierenimportieren Sie com.example.action.myAction undImportieren Sie myAction. Kein Erfolg aber, auch wenn ich mich stelledrinPY-Dateien in das Verzeichnis auf jeder Ebene.

Der zweite Ansatz, den ich versuchte, war das Laden der Ressource mit der Java-Klasse. Also habe ich den folgenden Code geschrieben:

import sys
import os
import com.example.action.MyAction as MyAction

scriptName = str(MyAction.getResource('/com/example/action/myAction.py'))
scriptStr = MyAction.getResourceAsStream('/com/example/action/myAction.py')

try:
  print execfile(scriptStr) 
except:
  print "failed 1"

try:
  print execfile(scriptName) 
except:
  print "failed 2"

Beides ist fehlgeschlagen. Ich bin jetzt ein bisschen ratlos, wie ich vorgehen soll. Irgendwelche Ideen ?

Prost,

Trevor

Antworten auf die Frage(1)

Ihre Antwort auf die Frage