Avatar billede sporge_jorgen Nybegynder
27. juni 2007 - 11:28 Der er 8 kommentarer og
1 løsning

Get running directory

Kan man i en simpel javaapplikation få stien til der, hvor applikationen ligger på filsystemet fx. c:\java\myApps?
Avatar billede mikkelbm Nybegynder
27. juni 2007 - 11:32 #1
Prøv:

File file = new File(".");
Avatar billede mikkelbm Nybegynder
27. juni 2007 - 11:33 #2
Eller:

String dir = System.getProperty("user.dir");
Avatar billede sporge_jorgen Nybegynder
27. juni 2007 - 12:48 #3
Jeg nævnte ikke hele det system context som det skal afvikles, så jeg kan desværre ikke bruge nogle af de to muligheder. Det kan dog være at løsningen ligger i at løse det på en anden måde. Jeg har en fil liggende i min classpath som jeg skal loade, men jeg kender ikke umiddelbart placeringen på min applikation. Jeg ved ikke om man evt. angive filnavnet og så på en eller anden måde få stien til filen, når bare filen eksisterer i classpath?
Ved ikke om det gav mening?
Avatar billede arne_v Ekspert
27. juni 2007 - 13:07 #4
Jeg har postet saan noget kode mange gange.

Her er det sidste eksempel jeg lavede:

import java.util.*;

import org.apache.xml.serialize.XMLSerializer;

public class PathTest {
    private 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 = getClass().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) {
        PathTest pt = new PathTest();
        System.out.println(pt.getPath(PathTest.class));
        System.out.println(pt.getPath(String.class));
        System.out.println(pt.getPath(XMLSerializer.class));
    }
}
Avatar billede sporge_jorgen Nybegynder
05. juli 2007 - 08:38 #5
Super. Det virkede.
Vil du have tildelt et par point med det samme :O)
Avatar billede arne_v Ekspert
05. juli 2007 - 12:59 #6
svar
Avatar billede arne_v Ekspert
07. august 2007 - 22:27 #7
Så mangler du bare at acceptere svaret.
Avatar billede sporge_jorgen Nybegynder
21. august 2007 - 09:43 #8
so
Avatar billede sporge_jorgen Nybegynder
21. august 2007 - 09:44 #9
oops. Gik i gang med at skrive "so" - starten til Sorry da jeg accepterede dit svar. Troede ikke der ville komme tekst med :-(
Sorry for det manglende svar og tak for påmindelsen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester