2013-03-19 10 views
5

Ich habe gerade begonnen, ein Java-Projekt mit LibreOffice 4.0.1 UNO SDK zu entwickeln, aaaand ... Ich stehe ziemlich direkt am Anfang. Ich denke, das gleiche kann angewendet werden, wenn ich OpenOffice.org anstelle von LibreOffice verwende, so dass jede Hilfe geschätzt wird.Erste Schritte mit UNO und Java mit Open/LibreOffice

Ich benutze Eclipse Juno 4.2 und ich schuf ein "Hello World" -ähnliches Projekt. Ich fügte hinzu, das /program Verzeichnis in dem Classpath (als externe Klasse Ordner hinzugefügt), und gleich am Anfang diese Codezeile

XComponentContext ctx = Bootstrap.bootstrap(); 

löst eine UnsatisfiedLinkError Ausnahme mit dem folgenden Stack-Trace:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpipe in java.library.path 
    at java.lang.ClassLoader.loadLibrary(Unknown Source) 
    at java.lang.Runtime.loadLibrary0(Unknown Source) 
    at java.lang.System.loadLibrary(Unknown Source) 
    at com.sun.star.lib.util.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:50) 
    at com.sun.star.lib.connections.pipe.PipeConnection.<clinit>(PipeConnection.java:48) 
    at com.sun.star.lib.connections.pipe.pipeConnector.connect(pipeConnector.java:110) 
    at com.sun.star.comp.connections.Connector.connect(Connector.java:114) 
    at com.sun.star.comp.urlresolver.UrlResolver$_UrlResolver.resolve(UrlResolver.java:108) 
    at com.sun.star.comp.helper.Bootstrap.bootstrap(Bootstrap.java:301) 
    at xx.test.unotest.UnoTest.main(UnoTest.java:16) 

Es gibt sogar einen try/catch, der den Befehl umgibt, aber er wird nicht ausgelöst.

Ich kann keine anständige Dokumentation über den Einstieg in UNO finden, also weiß ich nicht, was schief gelaufen ist. Das SDK ist installiert und die Umgebungsvariablen sind konfiguriert.

Fehle ich etwas?

Bearbeiten: Ich benutze Windows 7 64 Bit. Vielleicht hat das etwas mit dem Problem zu tun.

+0

Versuchen Sie, die folgende Verbindung aus: '-accept = socket, Host = localhost, port = 8100; urp; StarOffice.ServiceManager' Von http://www.oooforum.org/forum/viewtopic.phtml?t=27578 –

+0

@zachlatta Leider bekomme ich das gleiche Ergebnis. – MaxArt

+0

Sind Ihre Java-Umgebungsvariablen korrekt eingestellt? –

Antwort

6

Nun, das ist es, die Bibliothek jpipe.dll wurde nicht in den Verzeichnissen in der PATH Umgebungsvariablen gefunden. Ich musste dazu den Pfad LibreOffice 4.0/URE/bin hinzufügen.

Hinzufügen des Pfades zu java.library.path würde nicht funktionieren.

So, nach einem sehr ärgerlich SDK-Installation, die erforderlich ein GNU-Tool machen, die ich nicht, da die Verwendung und zwangen mich, MinGW und ein crappy Zip-Tool zu installieren, die nicht einfach gefunden werden konnte Spiegel von info-zip.org (die Quelle von api.libreoffice.org) sind alle runter, ich immer noch hatte diese dummen und undokumentierten Probleme.

Sobald diese gelöst wurde, die 64-Bit-Sache war tatsächlich ein Problem, da jpipe.dll ein 32-Bit ist nur eine Bibliothek und konnte nicht geladen werden, also musste ich auf eine 32-Bit-JDK/JRE wechseln in um es zum Laufen zu bringen.

Mann. Ich kann auf eine Benutzerfreundlichkeit der Benutzeroberfläche verzichten, aber das macht das Leben eines Entwicklers unnötig schwer!

Dies ist, warum Open-Source-Software manchmal saugt.

+3

fügen Sie '/ usr/lib/ure/lib' zu Classpath (für' libjpipe.so') unter Linux hinzu –

2

Wenn Sie 32-Bit von Libreoffice verwenden dann die u müssen 32 wechseln, aber von jdk auf work.Otherwise laden Sie die neueste Version von Libreoffice von 64-Bit-