jar-Name einer Klasse

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

wie kann ich bitte den .jar-Namen einer Klasse herausfinden?

Vielen Dank für di HIlfe
 
was ist bitte der jar-name einer classe?
*.jar ist eine zip-datei mit einem package oder classen-bündel als inhalt
*.jar lassen sich packen, entpacken und erweitern mit dem befehl JAR
 
ich möchte einfach zur Laufzeit wissen in welchem .jar-Bündel sich eine Klasse befindet. Ist dies nicht möglich?
 
nein weil der Name eines jars beliebig ist und nirgends wo gespeichert wird
 
@deathbyaclown
Ehm... Mister President, das ist so nicht ganz richtig. :bae:

Du müsstest alle Jars, ZIPs und Verzeichnisse aus Classpath nach der
.class Datei durchsuchen.
Die Klasse ist bereits bekannt, die in Frage kommenden Quellen auch.
Code:
Class c = ...;
ClassLoader cl = c.getClassLoader();
if(cl instanceof URLClassLoader)
{
  URL[] urls = ((URLClassLoader)cl).getURLs();
  for(URL url : urls)  // Alle URLs ausgeben
    System.out.println(url); 
}
Eigentlich würde es reichen, die unter Classpath eingetragenen Libs durchzusuchen. ???:L
 
ok - über das komplette durchsuchen aller zips, jars und sonstiges ist es möglich...

ob es sinnvoll und perfomant ist ? Ich glaube nicht Tim
 
Moin,

warum nicht einfach so ? :wink:

Code:
Class cl = Class.forName("java.util.Vector");
String res = cl.getName().replace('.', '/') + ".class";
ClassLoader cll = cl.getClassLoader();
URL url = null;
if (cll != null)
    url = cll.getResource(res);
else
    url = ClassLoader.getSystemResource(res);
System.out.println("########## url = "+url);

// Ausgabe:
// ########## url = jar:file:/C:/Java/j2sdk1.4.2_07/jre/lib/rt.jar!/java/util/Vector.class

Gruß
Mag1c
 
Wer sagt, dass eine Klasse in einer JAR sein muss? Man kann den Bytecode auch als Text in einem *.doc gespeichert haben (Keine Diskussion wie sinnvoll das ist - es ist einfach eine Möglichkeit).

Da stellt sich vorallem die Frage: Wozu willst du den JAR-Namen überhaupt wissen?
 
Ich muss Programmläufe mit unterschiedlichen Jar-files durchführen, und möchte dann automatisch festhalten mithilfe welches .jar-files der Lauf gemacht wurde, um diesen Programmlauf später wieder rekonstruieren zu können.
 
Hm, irgendwo werden die JARs ja mal dem Programm zugeordnet. Also ich würde bei dieser Zuweisung einspringen und die Info speichern... zur Not kurzerhand eine Datei erstellen und lesen; besser aber den Namen dem Programm als Übergabeparameter geben (wenns per Classpath geschieht). :? :?:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben