Hallo,
wie kann man die Version eines JAR-Files abfragen ?
In der MAnifest-DAtei kann man ja z.B: Implementation-Version bzw. Specification-Version angeben.
Die Implementation-Version kann man dann z.B: in einem JAVA-File über
this.getClass ().getPackage ().getImplementationVersion () abfragen.
Gibt es auch Command line Parameter über die man direkt die Version eines JAR-Files bekommt z.B: XYZ.JAR -v oder so ähnlich
Leider habe ich diesbezüglich nichts gefunden !
Danke
Albert
Hallo,
wie kann man die Version eines JAR-Files abfragen ?
Man kann es nicht, weil ein JAR-File keine Version hat.
Du kannst Classfiles mit verschiedenen Versionen erzeugen, und diese in ein gemeinsames Jar packen - welche Version hat jetzt das JAR?
Eben.
Um das zu prüfen, erzeuge zwei Klassen Version1_4 und ~1_5.
public class Version1\_5
{
/\*\* \*/
public static void main (String args[])
{
Version1\_4.show ();
}
/\*\* \*/
public static void show ()
{
System.out.println ("Version1\_5");
}
}
Im 1_4-File ersetzt Du jede 4 durch 5 und jede 5 durch 4.
Kompilier es mit
javac -source 1.4 -target 1.4 Version1\_4.java
Dabei werden - da die 1_4 die 1_5 aufruft - beide kompiliert.
Jetzt ein ls -l oder unter Windows dir machen, eine Minute warten, und die 1_5 nochmal neu kompilieren:
javac Version1\_5.java
ls -l
jar -cf version.jar Version1\_5.class Version1\_4.class
java -cp version.jar Version1\_5
java -cp version.jar Version1\_4
Es zeigt sich: beim 2. Kompilieren wird die 1_4 nicht neu kompiliert, da das class-File ja bereits vorhanden ist.
Jetzt sind Klassen unterschiedlicher Versionen im Paket, und arbeiten brav zusammen - jede kann die andere aufrufen.
Wenn Du wirklich wissen mußt, für welche Version die Klassen kompiliert wurden, dann mußt Du alle Klassen einzeln testen.
Ich frage mich nur: wozu?