Classpath in Manifest?

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
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
 
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 😀
 
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.
 
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.

Neue Themen


Zurück
Oben