ANT und relativen Pfad

Status
Nicht offen für weitere Antworten.

turkey0815

Mitglied
Hallo,

ich möchte mit ANT die rmiregistry starten (unter Mac OS X). Ich habe im Netz einige Beispiele gefunden, die bei mir leider aus irgendwelchen Gründen nicht funktionieren.

Problem 1:
Ich kann die registry mit folgendem Script zwar starten, aber sie läuft dann offensichtlich in einer falschen Umgebung, so dass ich keine Klassen registrieren kann.

Code:
<target name="start" depends="rmi_prop">
	<exec executable="${basedir}/rmiregistry"/> 
</target>

Es funktioniert alles super, wenn ich die registry von Hand starte, allerdings muss ich vorher in das bin-Verzeichnis meines Projektes wechseln.

Ich habe aber überhaupt keine Ahnung, wie ich das mit ANT hinbekomme. Ich habe ein wenig mit dem Starten einer Shell rumgespielt, allerdings ohne Erfolg. Die Registry muss ja dann über ein Kommandline-Argument gestartet werden und das ging nicht.

Problem 2:
Aus o.g. gründen habe ich ein eigenes Shellscript geschrieben, was ich jetzt mit ANT aufrufen möchte. Ich könnte jetzt das Shell-Script neben das ANT-Script legen, dann funktioniert alles super, aber wenn es in einem anderen Verzeichnis liegt, weiß ich nicht, wie ich dort hinkomme. Muss ich da eigentlich immer mit absoluten Pfaden arbeiten oder kann ich ausgehend von ${basedir} in das darüberliegende Verzeichnis wechseln?

Code:
<exec os="Mac OS X" executable="../../shellScripts/rmistart" >

Warum funktioniert das nicht und gibt es eine andere Lösung?

Vielen Dank schon mal,

Gruß,

André
 

turkey0815

Mitglied
Ja, dass mache ich auch für die registry, aber ich wollte das ShellScript nicht in das gleiche Verzeichnis, wie die ANT-Scripts legen und konnte deshalb das ShellScript nicht aufrufen. Ich habe es aber mittlerweile hinbekommen.

Code:
<project name="rmi" default="start">
	<target name="start" depends="rmi_prop">
		<property file="${os.name}.properties"/>
		<echo message="starting rmiregistry ..." />
		<exec executable="${rmiregistry.exe}"/> 
	</target>
	
	<target name="rmi_prop">
		<dirname property="antfile.dir" file="${ant.file}"/>
		<dirname property="parent.dir" file="${antfile.dir}"/>
		<dirname property="parent.parent.dir" file="${parent.dir}"/>
		<echo file="Mac OS X.properties">
			rmiregistry.exe=${parent.parent.dir}/shellScripts/rmistart
		</echo>
		<echo file="Windows.properties">
			rmiregistry.exe=${java.home}/bin/rmiregistry.exe
		</echo>
	</target>
</project>

Ist es eigentlich normal, dass das ANT-Script nicht abgearbeitet wird, sondern so lange weiterläuft, bis die registry mit kill terminiert wird?

Gruß,

André
 

SamHotte

Top Contributor
Hmm ... hab leider grad kein Linux zur Hand, um das zu testen. Hast du auf der ant-Page mal geschaut, ob da was dazu steht? Könnte mir schon vorstellen, dass ant immer wartet, sonst funktioniert das mit den abhängigen Targets ja nicht mehr ...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben