nä nich wirklich... das liefert dir den ganzen classpath, und kann ne ganze menge sein...Sasa hat gesagt.:Hab' den Befehl gefunden:
Code:System.getProperty("java.class.path");
String executingPath = System.getProperty("java.class.path");
if (executingPath.endsWith(".jar")) {
try {
JarFile jarFile = new JarFile(executingPath);
Enumeration enumeration = jarFile.entries();
while (enumeration.hasMoreElements()) {
JarEntry entry = (JarEntry) enumeration.nextElement();
String entryName = entry.getName();
if (entryName.endsWith(".properties")) {
System.out.println(entryName);
}
}
} catch (IOException e) {
System.err.println(e);
e.printStackTrace();
}
}
öhm, damit du das nich bei jedem jar build von hand machen musst?Sasa hat gesagt.:@Bleiglanz: An eine Meta Properties-Datei habe ich auch schon gedacht, doch wieso ant?
pf, wenn der benutzer an programmdateien rumfummelt braucht er sicht nicht zu wundern wenn das programm nich mehr richtig funktioniert.Ich gehe davon aus, dass die Benutzer meines Programms intelligent, gemein und faul sind. Das heißt ich traue ihnen zu, dass sie die jar-Datei ändern, also properties-Dateien löschen oder hinzufügen aber nicht die Meta-Datei ändern (wollen), sondern vom Programm erwarten, dass es die Änderung erkennt.
dann musst du es wohl oder übel dynamisch erkennen...Ich gehe davon aus, dass die Benutzer meines Programms intelligent, gemein und faul sind
String iniFileStr ;
String s = this.getClass().getName().replace('.','/') + ".class";
URL url = this.getClass().getClassLoader().getResource(s);
int pos;
try {
iniFileStr = URLDecoder.decode(url.getPath(),"UTF-8");
} catch (UnsupportedEncodingException ex) {};
Ach so, also nur um das ganze zu automatisieren. :roll:Roar hat gesagt.:öhm, damit du das nich bei jedem jar build von hand machen musst?
String jarFileName = null;
String s = this.getClass().getName().replace('.','/') + ".class";
URL url = this.getClass().getClassLoader().getResource(s);
String path = null;
try {
path = URLDecoder.decode(url.getPath(),"UTF-8");
} catch (UnsupportedEncodingException e) {
System.err.println(e);
e.printStackTrace();
}
if (path != null && path.startsWith("file:")) {
if (path.lastIndexOf(":/") > 4) { // Falls das Laufwerk "file" heißt
int end = path.lastIndexOf(".jar!");
int begin = path.lastIndexOf("/", end) + 1;
jarFileName = path.substring(begin, end);
}
}