Seite 1 von 1

java: no office executable found

Verfasst: Mo, 08.08.2011 15:58
von chebrise
hallo Forum,

nachdem mir die Suche genau kein Ergebnis zu "no office executable found" geworfen hat...

Betriebssystem ist WindowsXP
Eclipse 3.6.2 mit Classpath-Variablen zur OOo Installation (C:\Programme\OpenOffice.org 3\program)
OOo ist gestartet

Anleitung bei
http://wiki.services.openoffice.org/wik ... figuration
befolgt:
juh.jar, jurt.jar, ridl.jar und unoil.jar sind natürlich als Library verlinkt

die ClassDateien dieser 4 jars und com.sun.star.lib.* ist per Ant in das Programm (meinprog.jar) kopiert.
Auszüge aus der build.xml:

Code: Alles auswählen

<property name="OFFICE_ROOT" value="C:\Programme\LibreOffice 3" />
	<property name="OFFICE_HOME" value="${OFFICE_ROOT}/Basis" />
	<property name="OO_SDK_HOME" value="${OFFICE_HOME}/sdk" />
	<property name="OO_URE_HOME" value="${OFFICE_ROOT}/URE" />
	<property name="LIBS" value="C:\JavaLibs" />

<!-- fileset from InstallationFinder.class, Loader.class and WinRegKey.class -->
	<fileset id="bootstrap.glue.code" dir="${OO_SDK_HOME}/classes">
		<patternset>
			<include name="com/sun/star/lib/loader/*.class" />
		</patternset>
	</fileset>
 
	<!-- path to Office Jar's -->
	<path id="office.class.path">
		<filelist dir="${OFFICE_HOME}/program/classes" files="unoil.jar" />
		<filelist dir="${OO_URE_HOME}/java" files="jurt.jar,ridl.jar,juh.jar" />
	</path>

<!-- fileset OpenOffice Classes -->
	<fileset id="ooffice.code" dir="${LIBS}/OpenOfficeClasses">
		<patternset>
			<include name="com/sun/star/**/*.class"/>
		</patternset>
	</fileset> 

	<!-- Since the Eclipse IDE has an incremental compiler build in we do not need
	     to run the >compile< target in this case -->
	<target name="compile" depends="init" unless="eclipse.running">
		<mkdir dir="${BIN_DIR}" />
		<javac debug="true" deprecation="true" destdir="${BIN_DIR}" srcdir=".">
			<classpath refid="office.class.path" />
		</javac>
	</target>

	<!-- JAR -->
	<target name="jar" depends="init,compile">
		<mkdir dir="${OUT_DIR}" />
		<jar basedir="${BIN_DIR}" compress="true" jarfile="${OUT_DIR}/WetterDaten.jar">
			<exclude name="**/*.java" />
			<fileset refid="bootstrap.glue.code" />
			<fileset refid="log4j.code" />
			<fileset refid="pswing.code" />
			<fileset refid="mysql.code" />
			<fileset refid="ooffice.code" />
			
			<manifest>
				<attribute name="Main-Class" value="de.briesk.StartApp" />
				<section name="com/sun/star/lib/loader/Loader.class">
					<attribute name="Application-Class" value="com.sun.star.lib.loader.Loader" />
				</section>
			</manifest>
		</jar>
	</target>
durch folgenden Java Code habe ich "no office executable found" in meiner Logdatei:

Code: Alles auswählen

try {
			xSpreadsheetComponent = xComponentLoader
					.loadComponentFromURL("file:///C:/WetterDaten/BerichtTemplate.ods", "_blank", 0,
							loadProps);
		} catch (IOException e) {
			logger.error(e.getMessage());
		} catch (IllegalArgumentException e) {
			logger.error(e.getMessage());
		}
xSpreadsheetComponent ist ein com.sun.star.lang.XComponent
und xComponentLoader ist ein com.sun.star.frame.XComponentLoader

Kompilieren tut alles prima und das Programm läuft bis zum oben gezeigten try/catch Block. Dort sollte die OOo Vorlage geöffnet werden (OOo ist schon gestartet).
Das hatte auch schon funktioniert... wie immer hat man (ich) nichts verändert.

Was gibt es denn überhaupt für Möglichkeiten, dass diese Fehlermeldung auftritt?

jede Hilfe ist willkommen
PS: ich dreh schon durch

Re: java: no office executable found

Verfasst: Mi, 10.08.2011 13:58
von chebrise
so... weil ich die Windoof Fehlerquelle ausschalten wollte habe ich es nun für Ubuntu 10.04 umgebaut und getestet.

...selbes Ergebnis: in der Zeile des try/catch gibt es eine Nullpointer und im Logfile "no office executable found" :-(

Re: java: no office executable found

Verfasst: Mi, 10.08.2011 19:49
von hol.sten
Schau dir z. B. die mal an:
[Java solution] "no office executable found!": http://user.services.openoffice.org/en/ ... =44&t=2520.
[Java] Caution with Bootstrap using OOo 3.0.0: http://user.services.openoffice.org/en/ ... 44&t=10825
[Java example] Using the Interprocess Connection Mechanism: http://user.services.openoffice.org/en/ ... =44&t=1014
chebrise hat geschrieben:nachdem mir die Suche genau kein Ergebnis zu "no office executable found" geworfen hat...
Wo hast du gesucht? Ok, in diesem Forum funzt die Suche nicht. Aber z. B. eine Google-Suche hätte dir bestimmt brauchbare Links geliefert. Oder zumindest Foren, in denen diese Frage schon zillonen Male gestellt wurde.

Re: java: no office executable found

Verfasst: Fr, 12.08.2011 10:03
von chebrise
ok, dank dir, das funktioniert.

ich konnte es ja gar nicht glauben, daß der Fehler nicht bei mir sondern beim OOo lag. Aber ok, OpenSource ist und bleibt OpenSource :(
Vielleicht machen es die Apachen jetzt besser.

Re: java: no office executable found

Verfasst: Fr, 12.08.2011 11:35
von chebrise
das kannst du sehen wie du möchtest.

Re: java: no office executable found

Verfasst: Fr, 12.08.2011 17:49
von hol.sten
chebrise hat geschrieben:ich konnte es ja gar nicht glauben, daß der Fehler nicht bei mir sondern beim OOo lag.
Wo lag denn bzw. was war denn "der Fehler"? Ich verstehe deine Aussage nicht.

Re: java: no office executable found

Verfasst: Fr, 12.08.2011 18:45
von chebrise
die Anleitung von openoffice.org funktioniert nicht (oder nicht mehr):
http://wiki.services.openoffice.org/wik ... st_Contact

Code: Alles auswählen

XComponentContext xContext = Bootstrap.bootstrap();
Die Anleitung deines ersten Links löst die Aufgabe anders. Wobei man da den Ort der OOo Installation angeben muss. Das ist leider nicht so komfortabel.

Re: java: no office executable found

Verfasst: Fr, 12.08.2011 19:03
von hol.sten
chebrise hat geschrieben:die Anleitung von openoffice.org funktioniert nicht (oder nicht mehr):
http://wiki.services.openoffice.org/wik ... st_Contact

Code: Alles auswählen

XComponentContext xContext = Bootstrap.bootstrap();
Warum die Anleitung mit OOo 3.x nicht mehr funktioniert, kannst du bei Bedarf meinem zweiten obigen Link entnehmen. Für OOo 2.x funzt die Anleitung.

Re: java: no office executable found

Verfasst: So, 14.08.2011 09:52
von chebrise
auch auf die Gefahr hin, als DAU da zu stehen ;-)

Es ist also nicht möglich OOo zu erreichen ohne eine Pfadangabe!?

Fälschlicherweise dachte ich anfangs, dass OOo mit dem Netzwek-UNO-Zeug ähnlich wie ein Server lokalisiert werden kann wenn es gestartet ist.

Re: java: no office executable found

Verfasst: So, 14.08.2011 19:26
von hol.sten
chebrise hat geschrieben:Fälschlicherweise dachte ich anfangs, dass OOo mit dem Netzwek-UNO-Zeug ähnlich wie ein Server lokalisiert werden kann wenn es gestartet ist.
Das Problem ist, dass OOo nicht immer läuft. Wenn OOo läuft, dann kann man OOo über das Netzwerk finden. Das Verfahren hierzu nennt sich Interprocess Connection Mechanism (oben der dritte Link). Wenn OOo hingegen nicht läuft, dann muss man es starten und kann sich erst dann über das Netzwerk verbinden. Das macht der Bootstrap Mechanismus. Das Beschränkte an dem Bootstrap Mechanismus ist, dass er nur in ganz wenigen Verzeichnissen nach dem OOo Programm sucht, um es dann dort zu starten. Dem OOo Quelltext kann man genau entnehmen, wo Bootstrap nach dem OOo Programm sucht.
chebrise hat geschrieben:Es ist also nicht möglich OOo zu erreichen ohne eine Pfadangabe!?
Da mir nicht alle Betriebssystem zur Vefügung stehen, habe ich seinerzeit beim BootstrapSocketConnector der Einfachheit halber eine vorgebbare Pfadangabe als Parameter definiert. Wenn dir das nicht reicht, kannst du gerne eine Klasse entwickeln, die diese Ermittlung unter Linux, Windows (7, Vista, XP, ...), Solaris, Mac OS X vornimmt. Dann können sich zukünftige Entwickler die Pfadangabe sparen.

Re: java: no office executable found

Verfasst: Mo, 15.08.2011 07:09
von chebrise
genau das steht jetzt auf meinem Plan. Ich melde mich dann mit Code zurück und danke nochmal.