2013-06-10 5 views
4

J'ai lu toutes les autres questions liées à cela dans StackOverflow et je n'ai trouvé aucune réponse claire. Pour faire court, j'ai une application qui va stocker des fichiers dans un répertoire que je vais utiliser que de les traiter. J'ai l'intention de déplacer mon application à différents endroits (autres ordinateurs), j'ai donc besoin d'un chemin relatif pour travailler, de sorte que je ne changerai pas cela à chaque fois. Est-ce que quelqu'un sait comment obtenir le chemin relatif de l'application (pas le chemin complet) afin que je puisse utiliser dans ce cas? Si ce que je demande n'est pas un droit, s'il vous plaît, dites-moi une autre façon de réaliser ce dont j'ai besoin. MerciTrouver le chemin relatif de l'application java

Répondre

3

Il suffit d'utiliser "./".

Quel que soit le répertoire dans lequel votre application a été lancée, "./" retournera toujours ce répertoire.

Par exemple:

new File("./") renverra un objet fichier pointé dans le répertoire de votre application Java a été lancé à partir

new File("./myDirectory") renverra un objet fichier pointé sur le dossier Mydirectory situé dans le répertoire de votre application java a été lancé à partir

1

Voici une approche:

Je crois que vous devez définir le chemin du répertoire contenant les fichiers dans un fichier de configuration/propriété. Vous pouvez changer le chemin dans le fichier de configuration lorsque vous déplacez votre application ou le répertoire contenant le fichier. Voici comment déposer vos propriétés (disons config.properties) le contenu doit être:

filesDirPath = \ usr \ home \ test

Et ce que vous devez faire dans le code:

private void readConfig() 
    { 
     Properties prop = new Properties(); 

     try { 
       //load a properties file 
      prop.load(new FileInputStream("config.properties")); 

       //get the directory path property value 
       String flesDirPath = prop.getProperty("filesDirPath"); 

       System.out.println("Files to be read are located in dir : " + flesDirPath); 


     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 

    } 
+0

Merci, mais j'ai besoin de quelque chose de plus général. En tout cas merci encore :) –