19. juni 2005 - 23:52
Der er
11 kommentarer og 1 løsning
Navn på mappe
Hvordan kan man med java finde navnet på den mappe (evt. hele stien) på den fil koden befinder sig i? På forhånd tak Hono
Annonceindlæg fra GlobalConnect
File file = new File ("."); System.out.println (file.getAbsolutePath ()); Skulle kunne gøre det.
Hov... Det skal være uden punktum: new File ("");
current dir er nemt: System.getProperty("user.dir") men det dir hvor ens .class fil eller .jar fil befinder sig er noget sværere - jeg har dog engang lavet noget kode til det
import java.util.*; public class GetPathExt { private static String getPath(Class cls) { String cn = cls.getName(); StringTokenizer st = new StringTokenizer(cn,"."); StringBuffer sb = new StringBuffer(""); boolean first = true; while(st.hasMoreTokens()) { if(first) { first = false; } else { sb.append("/"); } sb.append(st.nextToken()); } sb.append(".class"); String path = GetPathExt.class.getClassLoader().getResource(sb.toString()).getPath(); int ix = path.indexOf("!"); if(ix >= 0) { path = path.substring(0, ix); int ix2 = path.lastIndexOf("/"); return path.substring(6, ix2 + 1); } else { int ix2 = path.lastIndexOf("/"); return path.substring(1, ix2 + 1); } } public static void main(String[] args) { System.out.println(GetPathExt.getPath(GetPathExt.class)); } }
koden forventer vist at GetPath og den klasse man skal vide hvor kommer fra loades af samme classloader, men normalt vil det nok være tilfældet
(new File ("")).getAbsolutePath() kendte jeg ikke
Faldt lige over et par linjer der skulle kunne gøre det samme som dit eksempel, Arne: String me = getClass().getName().replaceAll("\\.", "/"); String urlString = ClassLoader.getSystemResource(me + ".class").toString(); System.out.println (urlString);
prøv og test den hvis class'en ligger i en jar fil !
Ahh... Nej, det vil nok ikke fungere :)
20. juni 2005 - 00:15
#10
den første del af min kode kan dog sikkert godt erstattes af en simpel replaceAll den sidste del håndterer jar fil syntax
23. juni 2005 - 12:52
#11
mikkelbm >> Det virker perfekt. Smid et svar
24. juni 2005 - 07:52
#12
Kommer her...
Kurser inden for grundlæggende programmering