[Hier sollten evtl. noch ein paar einleitende Informationen oder Beispiele zur Kontaktaufnahme mit UNO/openoffice stehen. Das habe ich noch nicht geschafft zusammenzuschreiben, siehe dazu
http://udk.openoffice.org/]
1. Problem: UNO meldet "office executable not found"
Grund:
UNO sucht nach Office-Programm (soffice oder soffice.exe) via Ressourcenladen im normalen Classloader.
Lösung:
UNO-jars aus dem Verzeichnis laden, wo auch das Office-Programm liegt. (Windows üblicherweise "C:/Programme/OpenOffice.org 2.0/program", Linux üblicherweise "/usr/lib/openoffice/program").
Problem ist, dass in manchen Systemen die Jar-Dateien nicht in diesem Verzeichnis liegen (Beispiel ubuntu 7.04: /usr/share/java/openoffice/).
Außerdem muß man für diese Lösung den Classpath abhängig von der Office-Installation ändern. Natürlich gibt es Möglichkeiten auch zur Laufzeit einen URL-Classloader zu bauen, der auf ein konfigurierbares Office-Verzeichnis zeigt, aber dann tritt eben noch das 2. Problem auf, s.u.
Lösung für beanshell:
Die beanshell hat ihren eigenen Classloader, so daß die o.g. Lösung (dynamischer URL-Classloader) nicht funktioniert. Allerdings kann man mit folgender Zeile:
addClassPath( "/usr/lib/openoffice/program/" )
in der aktuellen Instanz von bsh.Interpreter das gleiche erreichen.
2. Problem: UNO-native libraries können nicht geladen werden, Meldung: java.lang.UnsatisfiedLinkError:
com.sun.star.lib.connections.pipe.PipeConnection.createJNI(Ljava/lang/String;)I
Lösung Linux/Windows:
JVM-Aufrufparameter nutzen:
-Djava.library.path=/usr/lib/openoffice/program/
Alternative Lösung Linux:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/openoffice/program/
Alternative Lösung Windows:
SET PATH=%PATH%;/usr/lib/openoffice/program/
Dynamische Lösung zur Laufzeit:
keine gefunden
Referenzen
- UNO http://udk.openoffice.org/
- UNO Classloading http://technology.amis.nl/blog/?p=1284
- UNO JNI http://www.oooforum.org/forum/viewtopic.phtml?t=40525&highlight=tomcat+connection
- Modify Classpath At Runtime http://forum.java.sun.com/thread.jspa?forumID=32&hilite=false&start=0&threadID=300557&range=15&q=
1 Kommentar:
Hallo.
Ich mochte mit Ihrer Website taeglich-java.blogspot.com Links tauschen
Kommentar veröffentlichen