Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting started with UNO and Java with Open/LibreOffice

I just started to develop a Java project using LibreOffice's 4.0.1 UNO SDK, aaaand... I'm pretty much stuck right at the beginning. I think the same can be applied if I used OpenOffice.org instead of LibreOffice, so any help is appreciated.

I'm using Eclipse Juno 4.2 and I created a "Hello World"-like project. I added the /program directory to the classpath (added as an external class folder), and right at the beginning this line of code

XComponentContext ctx = Bootstrap.bootstrap();

throws an UnsatisfiedLinkError exception with the following 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)

There's even a try/catch surrounding the instruction but it's not triggered.

I can't find decent documentation about getting started with UNO, so I don't know what went wrong. The SDK is installed and the environment variables are configured.

Am I missing something?

Edit: I'using Windows 7 64 bit. Maybe this has something to do with the problem.

like image 382
MaxArt Avatar asked Mar 19 '13 15:03

MaxArt


2 Answers

Well, that's it, the library jpipe.dll wasn't found in the directories listed in the PATH environment variable. I had to add the path LibreOffice 4.0/URE/bin to that.

Adding the path to the java.library.path wouldn't work.

So, after a very annoying SDK installation, which required a GNU make tool that I won't use and forced me to install MinGW, and a crappy zip tool that couldn't simply be found since the mirrors from info-zip.org (the source given by api.libreoffice.org) are all down, I still had these stupid and undocumented problems.

Once this was solved, the 64 bit thing was actually a problem, since jpipe.dll is a 32 bit only library and couldn't be loaded, so I had to switch to a 32 bit JDK/JRE in order to make it work.

Man. I can do without some interface user-friendliness, but this is just making the life of a developer unnecessarily hard!

This is why open source software sometimes sucks.

like image 62
MaxArt Avatar answered Sep 25 '22 20:09

MaxArt


If you are using 32 bit of libreoffice then the u need to switch 32 but of jdk to work.Otherwise download the latest version of libreoffice of 64bit

like image 34
Vidhya Avatar answered Sep 24 '22 20:09

Vidhya