Java-Applikation und OpenOffice/UNO

MrGe

MrGe

Mitglied
Hallo,

ich möchte eine Java-Application schreiben, die odt-Dateien schreibt.
Es sollen mathematische Formeln (so mit Wuzelzeichn und Brüchen) in eine Texttabelle geschrieben werden.

Ich möchte das nur mit Java und OpenOffice/UNO machen.

Das haut aber noch nicht hin.
Ich habe ein Programm geschrieben, dass ich zwar kompilieren, aber nicht ausführen kann.

Java:
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.sun.star.lib.connections.pipe.PipeConnection.createJNI(Ljava/lang/String;)I
	at com.sun.star.lib.connections.pipe.PipeConnection.createJNI(Native Method)
	at com.sun.star.lib.connections.pipe.PipeConnection.<init>(PipeConnection.java:128)
	at com.sun.star.lib.connections.pipe.pipeConnector.connect(pipeConnector.java:137)
	at com.sun.star.comp.connections.Connector.connect(Connector.java:141)
	at com.sun.star.comp.urlresolver.UrlResolver$_UrlResolver.resolve(UrlResolver.java:123)
	at com.sun.star.comp.helper.Bootstrap.bootstrap(Bootstrap.java:285)
	at TestOOAPI.<init>(TestOOAPI.java:20)
	at TestOOAPI.main(TestOOAPI.java:15)
Leider habe ich noch keine Lösung gefunden.

Kann mir jemand einen Tipp geben?
Kennt jemand eine Schritt für Schritt-Anleitung?

Vielen Dank und liebe Grüße!!


Java:
################################################################################################
TestOOAPI.java
################################################################################################
//In Anlehnung an: [url=http://openofficejava.blogspot.com/2009/05/openofficeorg-api.html]OpenOffice API Programming in Java: Openoffice.org UNO API[/url]
import com.sun.star.beans.PropertyValue;
import com.sun.star.comp.helper.Bootstrap;
import com.sun.star.comp.helper.BootstrapException;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.text.XText;
import com.sun.star.text.XTextDocument;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
public class TestOOAPI {
	public static void main(String[] args) {
		new TestOOAPI();
	}
	public TestOOAPI(){
		try {
			// Get the remote office component context
			XComponentContext xContext = Bootstrap.bootstrap();
			// Get the remote office service manager
			XMultiComponentFactory xMCF = xContext.getServiceManager();
			try{
				// Get the root frame (i.e. desktop) of openoffice framework.
				Object oDesktop = xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);
				// Desktop has 3 interfaces. The XComponentLoader interface provides ability to load components.
				XComponentLoader xCLoader = 
					( XComponentLoader ) UnoRuntime.queryInterface(XComponentLoader.class, oDesktop);
				
				
				// Create a document
				XComponent document = 
					xCLoader.loadComponentFromURL("private:factory/swriter", "_blank", 0, new PropertyValue[0]);

				// Get the textdocument
				XTextDocument aTextDocument = 
					( XTextDocument )UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class, document);

				// Get its text
				XText xText = aTextDocument.getText();
				
				// Adding text to document
				xText.insertString(xText.getEnd(), "My First OpenOffice Document", false);

			}catch(Exception ex){ex.printStackTrace();}
		} catch (BootstrapException e) {e.printStackTrace();}
	}
}

Java:
################################################################################################
compile-run.sh
################################################################################################
#!/bin/sh
JAVAC=javac
JAVA=java

export CLASSPATH=$CLASSPATH:.:/usr/share/java/openoffice/juh.jar:/usr/share/java/openoffice/jurt.jar:/usr/share/java/openoffice/ridl.jar:/usr/share/java/openoffice/unoil.jar:/usr/lib/openoffice/program/soffice

if [ $1 -eq 0 ]; then
	echo "compile"
	$JAVAC TestOOAPI.java
elif [ $1 -eq 1 ]; then
	echo "run"
	#test 1: ----------------------------------------------------------------------
		export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/openoffice/program/
		$JAVA TestOOAPI
	#test 2: ----------------------------------------------------------------------	
	#$JAVA -Djava.library.path=/usr/lib/openoffice/program/ TestOOAPI
else
	echo ""
	echo "give me a 0 or 1 please"
fi
################################################################################################
diverse pfade
################################################################################################
ls /usr/share/java/openoffice/
agenda.jar com commonwizards.jar fax.jar form.jar java_uno.jar JREProperties.class js.jar juh.jar juh_src.zip jurt.jar jurt_src.zip letter.jar lucene-analyzers-2.3.jar lucene-core-2.3.jar LuceneHelpWrapper.jar query.jar report.jar ridl.jar ridl_src.zip sandbox.jar saxon9.jar ScriptFramework.jar ScriptProviderForBeanShell.jar ScriptProviderForJava.jar ScriptProviderForJavaScript.jar table.jar unoil.jar unoloader.jar unoloader_src.zip web.jar win XMergeBridge.jar xmerge.jar XSLTFilter.jar XSLTValidate.jar

which soffice
/usr/bin/soffice

ls -l /usr/bin/soffice
lrwxrwxrwx 1 root root 33 2011-02-03 14:17 /usr/bin/soffice -> ../lib/openoffice/program/soffice
 
I

I-Doetzken

Mitglied
so gehts:

Java:
import com.sun.star.beans.PropertyValue;
import com.sun.star.comp.helper.Bootstrap;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.frame.XDesktop;
import com.sun.star.io.IOException;
import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.text.XText;
import com.sun.star.text.XTextCursor;
import com.sun.star.text.XTextDocument;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;

public class FirstUnoContact {
	public static void main(String[] args) {
		new FirstUnoContact();
	}

	public FirstUnoContact(){
		XDesktop xDesktop = null;
		xDesktop = getDesktop();
		
		XComponent xComponent = null;
		XTextDocument xTextDocument = null;
		
		XComponentLoader xComponentLoader = 
			(XComponentLoader)UnoRuntime.queryInterface(
					XComponentLoader.class, xDesktop
		);
		try {
			xComponent = xComponentLoader.loadComponentFromURL(
				"private:factory/swriter", "_blank", 0, new PropertyValue[0]
			);
			xTextDocument = (XTextDocument)UnoRuntime.queryInterface(
				XTextDocument.class, xComponent
			);
			XText xText = xTextDocument.getText();
			XTextCursor xTextCursor = xText.createTextCursor();
			xText.insertString(xTextCursor, "Hello World!", false);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		}		
	}

	public static XDesktop getDesktop() {
		XDesktop xDesktop = null;
		XMultiComponentFactory xMCF = null;
		
		try {
			XComponentContext xContext = null;
			xContext = Bootstrap.bootstrap();
			xMCF = xContext.getServiceManager();
			if( xMCF != null ) {
				System.out.println("Connected to a running office ...");
				Object oDesktop = xMCF.createInstanceWithContext(
						"com.sun.star.frame.Desktop", xContext
				);
				xDesktop = (XDesktop) UnoRuntime.queryInterface(
						XDesktop.class, oDesktop
				);
			}else{
				System.out.println(
						"Can't create a desktop." +
						"No connection, no remote office servicemanager available!"
				);
			}
		}catch( Exception e) {
			e.printStackTrace(System.err);
			System.exit(1);
		}
		return xDesktop;
	}
	
	public static XTextDocument createTextdocument(XDesktop xDesktop ){
		
		XTextDocument aTextDocument = null;
		
		try {
			XComponent xComponent = CreateNewDocument(xDesktop, "swriter");
			aTextDocument = (XTextDocument)UnoRuntime.queryInterface(
					XTextDocument.class, xComponent
			);
		}catch( Exception e) {
			e.printStackTrace(System.err);
		}
		return aTextDocument;
	}
	
	protected static XComponent CreateNewDocument(XDesktop xDesktop,String sDocumentType ){

		String sURL = "private:factory/" + sDocumentType;
		
		XComponent xComponent = null;
		XComponentLoader xComponentLoader = null;
		PropertyValue xEmptyArgs[] = new PropertyValue[0];
		
		try {
			xComponentLoader = (XComponentLoader)UnoRuntime.queryInterface(
					XComponentLoader.class, xDesktop
			);
			xComponent = xComponentLoader.loadComponentFromURL(
			sURL, "_blank", 0, xEmptyArgs);
		}catch( Exception e) {
			e.printStackTrace(System.err);
		}
		return xComponent ;
	}
	
}

startscript:

Java:
#!/bin/sh

UNO=/opt/libreoffice3.4/ure/share/java/
UNOIL=/opt/libreoffice3.4/basis3.4/program/classes/
LO=/opt/libreoffice3.4/program/

CLASSPATH=$CLASSPATH:.:"$UNO"java_uno.jar:"$UNO"juh.jar:"$UNO"jurt.jar:"$UNO"ridl.jar:"$UNO"unoloader.jar:"$UNOIL"unoil.jar:"$LO"soffice

#javac -cp "$CLASSPATH" FirstUnoContact.java
java -cp "$CLASSPATH" FirstUnoContact
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
O Java-Applikation tut in Netbeans, als JAR nicht, wegen Pfadangaben einer benötigten Datei Allgemeine Java-Themen 8
L Java Applikation Web Anbindung Allgemeine Java-Themen 2
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
B Applikation ohne (direkt)Java installiert zu haben auszuführen Allgemeine Java-Themen 8
D Methoden Java Applikation Die System Auslastung optimieren ? Allgemeine Java-Themen 7
P Java Applikation mit Webinterface Allgemeine Java-Themen 1
J java-applikation-1.jar soll java-applikation-2 aufrufen.jar Allgemeine Java-Themen 5
S Java Applikation zu autostart hinzufügen Allgemeine Java-Themen 7
S Perfomance Problem mit Java Applikation Allgemeine Java-Themen 4
F Parameter für Java Applikation per xml ins Meta-inf speichern? Allgemeine Java-Themen 3
C Java Applikation Benutzerkontrolle Allgemeine Java-Themen 3
S Java Webstart Applikation in den Autostart? Allgemeine Java-Themen 3
X Aus Java Applikation externes Programm starten Allgemeine Java-Themen 3
O Applikation über java steuern Allgemeine Java-Themen 11
M Beenden einer externen Java-Applikation Allgemeine Java-Themen 11
H Php Script aus Java Applikation starten Allgemeine Java-Themen 2
B Browser link aus Java-Applikation öffnen Allgemeine Java-Themen 2
A Setup von einer Java-Applikation starten Allgemeine Java-Themen 4
B Java Applikation incl. dll unter Linux ausführen? Allgemeine Java-Themen 11
mabu MediaCenter Applikation in Java realistisch oder nicht? Allgemeine Java-Themen 11
E NT-Anmeldung in Java Client-Applikation nutzen. JAAS ? Allgemeine Java-Themen 5
D Startverhalten Java-Applikation Allgemeine Java-Themen 7
A Java-Applikation auf einem anderen Rechner starten Allgemeine Java-Themen 17
D Plattformunabhängiges ausführbare Java-Applikation ohne jar Allgemeine Java-Themen 5
G überpüfen ob bereits instanz von java applikation läuft Allgemeine Java-Themen 4
L Ressourcen Java Applikation Allgemeine Java-Themen 4
D Name der Java-Applikation Allgemeine Java-Themen 2
G Java Applikation stürzt ab :!: Allgemeine Java-Themen 5
M Java Applikation Slideshow Allgemeine Java-Themen 13
C Java Applikation - Schrift . (formatieren, effekte) Allgemeine Java-Themen 4
W Kleines Applet in Standard Java Applikation umwandeln Allgemeine Java-Themen 3
G idee für java applikation Allgemeine Java-Themen 3
G eigene uhrzeit in einer java applikation führen Allgemeine Java-Themen 19
thE_29 Java Applikation ohne grafische Oberfläche Allgemeine Java-Themen 24
G Java Applikation von einem Browser steuern Allgemeine Java-Themen 8
L Java Applikation über Netzwerk starten Allgemeine Java-Themen 8
X Applikation Java Web Start fähig machen Allgemeine Java-Themen 4
R Java Stream: Ist es möglich, einen stream zusammenzufassen Allgemeine Java-Themen 4
T Best Practice Java und unmodifiable Allgemeine Java-Themen 10
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
Vanessa001 Hausaufgabe in Java Allgemeine Java-Themen 7
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
T C++ Methode Übersetzung in Java Allgemeine Java-Themen 3
s_1895 Hilfe bei Java Tic Tac Toe Allgemeine Java-Themen 8
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
F Java Console Allgemeine Java-Themen 2
Gaudimagspam Skip Liste erstellen in Java Allgemeine Java-Themen 3
AGW Java zu Kotlin Allgemeine Java-Themen 5
bax7891 Java Damals - Java Heute Allgemeine Java-Themen 6
tm.grp Teilsummenproblem in Java Allgemeine Java-Themen 2
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 0
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
O Input/Output java.io.File beenden Allgemeine Java-Themen 5
S Java class direved from inner class Allgemeine Java-Themen 6
Gaudimagspam CSV-Datei auslesen in Java Allgemeine Java-Themen 7
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
H Java SDK unter 32 Bit Allgemeine Java-Themen 5
P Unterschied Java SE und Java EE Allgemeine Java-Themen 2
B Methoden Java Getter und Setter Methoden Allgemeine Java-Themen 9
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
M Registry Autostart Eintrag ertstellen mit Java (Runtime.getRuntime().exec()) Allgemeine Java-Themen 0
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M java.util.prefs.Preferences "not visible" Allgemeine Java-Themen 7
M Website Quelltext mit Java einlesen Allgemeine Java-Themen 10
J Java Filechooser Speichern Allgemeine Java-Themen 8
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
F Fehlermeldung: java.lang.NoClassDefFoundError: org/apache/commons/net/ntp/NTPUDPClient Allgemeine Java-Themen 6
T Java-Anfänger möchte professionell coden lernen Allgemeine Java-Themen 23
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Java Dom Childelemente von de Childelemente von den Childelement bekommen Allgemeine Java-Themen 1
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
Z Welches GUI Framework für Java ist aktuell? Allgemeine Java-Themen 16
I Java und XML Allgemeine Java-Themen 10
K Java Programmfluss Allgemeine Java-Themen 13
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
N Convert.FromBase64 von C# für Java Allgemeine Java-Themen 11
C Java RMI Client - Server Allgemeine Java-Themen 0
Ullenboom Ein neues Java-Buch entsteht, willst du helfen? Allgemeine Java-Themen 7
N fixed-keyword von C# für Java Allgemeine Java-Themen 6
G Java Reflections Allgemeine Java-Themen 6
bueseb84 Java : Cannot find Symbol Allgemeine Java-Themen 7
N E-Mail per Java verschicken Allgemeine Java-Themen 2
Y Java Bruttoberechnen + runden Methode Allgemeine Java-Themen 1
Y Java Methoden unterschiedliche Zahlenreihen Allgemeine Java-Themen 2
M java.io.EOFException bei einem DataoutputStream ?! Allgemeine Java-Themen 2
D Java Kuriositäten / Rätsel Allgemeine Java-Themen 9
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
1 Java Scanner Allgemeine Java-Themen 2
J Key Keystore Certificate Java Android Development Allgemeine Java-Themen 1
J Java KeyStore Schlüssel Allgemeine Java-Themen 10
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
M Java model class ? Allgemeine Java-Themen 9
C Java Script Pause berechnen Allgemeine Java-Themen 5
P Input/Output entfernte Datei mit Java öffnen ohne Download Allgemeine Java-Themen 5
M Java komplexe Map mit 2 values ? Allgemeine Java-Themen 8
bueseb84 Java Deploy to JFrog Repository Allgemeine Java-Themen 3

Ähnliche Java Themen

Anzeige


Oben