2017-05-17 5 views
1

Ich benutze JPype, um mit Java-Klassen in Python zu arbeiten. Ich habe einen Ordner, der mehrere selbstgeschriebene .jar-Dateien enthält.JPype (Python): Importieren des Ordners von jars

Ich weiß, wie mehrere .jar die auf dem langen Weg zu importieren:

... 
CLASSPATH = "/path/to/jars/first.jar:/path/to/jars/second.jar" 
jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % CLASSPATH) 
MYLIB= jpype.JPackage("org").mylib 
MyClass = MYLIB.MyClass 
myObj = MyClass() 

Dies funktioniert gut, aber ich denke, es könnte ein besserer Weg geben.

Ich habe bereits versucht dies:

CLASSPATH = "/path/to/jars/*.jar" 

und diese:

CLASSPATH = "/path/to/jars/*" 

In beiden Fällen folgende Fehler tritt auf:

[email protected]:~/path/to/python/$ python test.py 
Traceback (most recent call last): 
    File "test.py", line 23, in <module> 
    myObj = MyClass() 
    File "/usr/local/lib/python2.7/dist-packages/JPype1-0.6.2-py2.7-linux-x86_64.egg/jpype/_jpackage.py", line 60, in __call__ 
    raise TypeError("Package {0} is not Callable".format(self.__name)) 
TypeError: Package org.mylib.MyClass is not Callable 

Meine Frage:

Gibt es eine Möglichkeit, einfach einen Ordner zu importieren, der mehrere JAR-Dateien in JPype enthält?

Antwort

1

Sie können die Liste der JAR-Dateien mit Python-Code beitreten, ohne

f'{str.join(":", ["path/to/jars/"+name for name in os.listdir("path/to/jars")])}' 
zu