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.
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!!
################################################################################################
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
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)
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