I ran across this excellent reference on how to start OO from shell. instead of that silly file name I just opened it on my desktop and dumped the code. What it worth mentioning is that it opens whatever release you currently have. for completion the code it below:
################
import com.sun.star.bridge.XUnoUrlResolver;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import java.io.IOException;
import java.io.InputStream;
/**
*
* @author bobohead2
*/
public class StartOpenOffice {
private String unoUrl =
"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager";
/** Creates a new instance of StartOpenOffice */
public StartOpenOffice() {
}
public boolean startOpenOffice(String p_scriptpfad){
boolean loaded = false;
try {
// loads the script
String cmd = p_scriptpfad //home/bobohead2/OpenOffice.org1.1/ListenOffice.sh";
Process process = Runtime.getRuntime().exec(cmd);
InputStream processOut = process.getInputStream();
InputStream processErr = process.getErrorStream();
} catch (IOException ioe) {
ioe.printStackTrace(System.out);
}
while(loaded == false){
try{
// open Office may take a while to open
XComponentContext xLocalContext =
com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null);
XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager();
Object urlResolver = xLocalServiceManager.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver", xLocalContext );
// query XUnoUrlResolver interface from urlResolver object
XUnoUrlResolver xUnoUrlResolver = (XUnoUrlResolver) UnoRuntime.queryInterface(
XUnoUrlResolver.class, urlResolver );
// Second step: use xUrlResolver interface to import the remote StarOffice.ServiceManager,
// retrieve its property DefaultContext and get the remote servicemanager
Object initialObject = xUnoUrlResolver.resolve( unoUrl );
loaded = true;
}catch(Exception e){
// open office is not ready yet
loaded = false;
// wait a liitle bit and try again
for(int i=0;i< 10000;i++){
}
}
}
return loaded;
}
}
##########################
and to run it just type:
#!/bin/sh
/opt/openoffice.org2.0/program/soffice "-accept=socket,port=8100;urp;"
No comments:
Post a Comment