ant und classpath

Status
Nicht offen für weitere Antworten.

karahead

Aktives Mitglied
Hi, hab mal frage zu ant.

Ich frage mich schon lange wie ich meinen Classpath elegant dynamisch erstellen kann? 8)
hab's bis jetzt so gemacht:
Code:
...
<property name="classpath" location="${lib}/xyz.jar" />
...

Tja leider bleibt's nicht immer bei einer jar und ich hab keinen Bock immer die langen jarNamen und ihre ewig langen versions nummer zu schreiben.

Naja hab mir gedacht, dass es so in der Art doch gehen müsste. Tut's aber nicht:
Code:
...
<property name="classpath" location="${lib}/*.jar" />
...

Naja hoffe jemand war schon vormir so faul und hat sich da ne Lösung überlegt. :D
 

karahead

Aktives Mitglied
Erstmal danke für die schnelle Antwort.

Das bringt mich zu 2 neuen Fragen: :D
1. *.jar beudetet, dass jede File mit der Endung .jar hinzugefügt wird. Aber was bedeutet **/ ???
2. Hast du ein kleines Bsp. parat zu fileset und cp. Weiß jetzt nicht ob es in javac kommt oder irgend woanders hin.
 

Bleiglanz

Gesperrter Benutzer
** bedeuted beliebiege unter-unter-(...) directories

erst einen path anlegen
Code:
  <path id="MeinClasspath">
    <fileset dir="${lib.dir}">
      <include name="**/*.jar"/>
    </fileset>
  </path>

und dann verwenden
Code:
  <target name="compile">
    <javac ...>
      <classpath refid="MeinClasspath"/>
    </javac>
  </target>
 

karahead

Aktives Mitglied
Nur noch ne kleine Frage.
Hab's nun so gemacht wie es in deinem Bsp steht, denn meine Ideen haben net geklappt ;)
Aber wie krieg ich den classpath nun in meine Jar-Manifest.

Hab's mal so probiert:
Code:
...
<path id="classpath"> 
		<fileset dir="${lib}"> 
			<include name="**/*.jar"/> 
		</fileset>
		<fileset dir="${plugins.bin}">
			<include name="**/*.class"/>
		</fileset>
		<fileset dir="${plugins.bin}">
			<include name="**/*.jar" />
		</fileset>
	</path> 
...
<jar destfile="${jar.name}"
			 basedir="${build}"	>
			<manifest>
				<attribute name="Class-Path" value="${classpath}"/> //problem
				<attribute name="Main-Class" value="pfad.zur.MainClass" />
			</manifest>
		</jar>
Leider schreibt ant ${classpath} wörtlich rein, soll es aber nicht.

-Danke
 

karahead

Aktives Mitglied
Ok so weit ich das verstanden habe, geht's einfach nicht, weil man mit <path id... keine ${}-Variabel erstellt.

Also heißt es für mich weiter per Hand schreiben.
 

Jörg

Bekanntes Mitglied
habs nur ueberflogen, aber ich glaub du brauchst sowas:
Code:
	<!-- convert the path property to default property, to use it 
	     as Class-Path attribute in jar-manifest file. -->
	<pathconvert refid="classpath" property="manifest.class.path"
						    	   dirsep="/" pathsep=" ">
		
		<chainedmapper>
			<flattenmapper /> 
			<globmapper from="*" to="${lib.dir}/*"/>
		</chainedmapper>
	</pathconvert>

				<manifest id="ka">
					<attribute name="Class-Path" value="${manifest.class.path}" />
				</manifest>

hm hab ich aus nem Forum, weiss aber nicht mehr aus welchem...
 

karahead

Aktives Mitglied
Danke pathconvert ist genau das was ich gesucht habe. Jetzt funktionierts.
---Edit
kann mal ein OP das häckchen setzten. Irgendwie klappt es bei mir nicht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Eclipse Trotz .jar-Datei im Classpath Fehler bei import IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
M NetBeans Buildprozess inkludiert nicht die Classpath-Pakete (Java Ant) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
D Eclipse 'server run configuration' speichert classpath Eintrag nicht! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
L Wie MANIFEST.MF mit classpath aus Eclipse exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
H Maven realer Classpath? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S NetBeans Hauptklasse nicht gefunden - classpath IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
reibi Eclipse PackageExplorer, .project und .classpath wird angezeigt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
A Ordner in Eclipse-Classpath angeben IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
A Eclipse Classpath IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
B Eclipse - WTP - Classpath IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
vogella ant findet classpath jars nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
A NetBeans 5.5 - Problem: Endlosschleife classpath scanning IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
T [Eclipse] Folder zu Classpath hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
M TextPad Packages Classpath IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
P Eclipse: Oracle JDBC Treiber einbinden in die IDE, Classpath IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2

Ähnliche Java Themen


Oben