2017-05-14 4 views
3

versucht, die Tike-App mit Jnius laufen, aber ein Problem (macOS Sierra, Java 1.8 JDK, Python 2.7 & Python 3.6) Alles funktioniert gut (Ausgabe für tika.detect ist in Ordnung) bis zum parseToString Befehl. Es scheint, dass es ein Pop-Up zeigt, wenn Sie diesen Befehl ausführen (getestet mit einem Java-Programm auch und es funktioniert). Aber mit Jnius läuft es nicht mehr und es gibt keine Ausgabe und keinen Fehler.JNIUS & TIKA - Fehler versucht zu parseToString

import os 

os.environ['CLASSPATH'] = "tika-app-1.14.jar" 
from jnius import autoclass 
from jnius import JavaException 

# Import the Java classes 
Tika = autoclass('org.apache.tika.Tika') 
Metadata = autoclass('org.apache.tika.metadata.Metadata') 
File = autoclass('java.io.File') 

# Raise an exception and continue if parsing fails 
try: 
    file = File('./source/test.doc') 
    tika = Tika() 
    meta = Metadata() 
    detectText = tika.detect(file) 
    print(detectText) # Working the output is: application/msword 
    contentText = tika.parseToString(file) #here it stops no further steps are executed 
    print(contentText) 
except (JavaException,UnicodeDecodeError) as e: 
    print("ERROR: %s" % (e)) 

Antwort

1

Endlich habe ich die Lösung gefunden. Es gibt eine Option für die JVM fehlt sagen die Tiki.jar den kopflosen Modus zu verwenden.

#Config have to be before import minus 
import jnius_config 
jnius_config.add_options('-Djava.awt.headless=true') 

import os 
os.environ['CLASSPATH'] = "tika-app-1.14.jar" 

from jnius import autoclass 

## Import the Java classes we are going to need 
Tika = autoclass('org.apache.tika.Tika') 
Metadata = autoclass('org.apache.tika.metadata.Metadata') 
FileInputStream = autoclass('java.io.FileInputStream') 

tika = Tika() 
meta = Metadata() 
text = tika.parseToString(FileInputStream("./source/test.doc"), meta) 
print(text) 
Verwandte Themen