Classpath in Manifest?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

wenn ich in einer Manifest Datei einen Classpath eintragen möchte der auf zwei Jars im Unterordner "jars" verweißt - etwa so:

c:/proggy/proggy.jar
c:/proggy/jars/jar1.jar
c:/proggy/jars/jar2.jar

Wie würde ich das in der Manifest-Datei angeben?

/libs/jar1.jar
libs/jar1.jar
./libs/jar1.jar
...

Und mit welchem Trennzeichen müsste ich die beiden Jars voneinander trennen ?

,
;


?????

Danke
 

mvitz

Top Contributor
Code:
Class-Path: jars/jar1.jar jars/jar2.jar

Getrennt durch Leerzeichen, Pfade realtiv zum jar-File in dem du den Classpath angibst. Trickreich wirds dann noch mit neuen Zeilen :D
 

Wildcard

Top Contributor
der Pfad ist übrigens relativ zum Arbeitsverzeichnis, wenn man also zB in /home/user java -jar /opt/program/jar.jar ausführt, geht das schief.
 

mvitz

Top Contributor
Da muss ich dir leider wiedersprechen. Ist abhängig vom jar und nicht vom Arbeitsverzeichnis.
Test:
Code:
public class A {

        private String a;

        public A() {
                a = "Test";
        }

        public String getA() {
                return a;
        }
}
Code:
public class B {

        public static void main(String[] args) {
                A a = new A();
                System.out.println(a.getA());
        }
}
Ant build file:
Code:
<project name="testJar" default="default" basedir=".">
        <target name="default">
                <mkdir dir="libs" />
                <javac srcdir="." destdir="." debug="on" />
                <jar destfile="B.jar">
                        <fileset dir=".">
                                <include name="B.class" />
                        </fileset>
                        <manifest>
                                <attribute name="Class-Path" value="libs/A.jar" />
                                <attribute name="Main-Class" value="B" />
                        </manifest>
                </jar>
                <jar destfile="A.jar">
                        <fileset dir=".">
                                <include name="A.class" />
                        </fileset>
                </jar>
                <move todir="libs" file="A.jar" />
        </target>
</project>

Anschließend lässt sich mit
Code:
java -jar pfad/zu/B.jar
Die jar ausführen. Egal in welchem Verzeichnis man ist. Geht dann sowohl mit relativem als auch absoluter Pfadangabe.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben