Java-Applikation und OpenOffice/UNO

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-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
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben