2009-08-05 8 views
3

J'ai extrait tomcat à un endroit et mon répertoire webapps peut être ailleurs. Alors comment obtenir le chemin absolu de mon application web? . J'ai mon programme de gestion de fichiers dans les webapps et je veux trouver le chemin absolu de mes webapps ou de mon répertoire d'application (à partir de c:/ou/home/use/../../webapp/mywebapplication comme ça). Chose est que je n'ai pas de contrôle sur qui/où mon application va être déployée?tomcat webapps répertoire chemin absolu?

Répondre

2

voir getServletContext() getRealPath ("") -. De cette façon, ne fonctionnera pas si le contenu est mis à la disposition d'une archive .war.

Dans certains cas, nous pouvons utiliser un autre moyen pour obtenir le chemin réel. Exemple d'obtention d'un chemin vers un fichier de propriétés C:/Program Files/Tomcat 6/webapps/monapp/WEB-INF/classes/somefile.properties:

// URL returned "/C:/Program%20Files/Tomcat%206.0/webapps/myapp/WEB-INF/classes/" 
URL r = this.getClass().getResource("/"); 

// path decoded "/C:/Program Files/Tomcat 6.0/webapps/myapp/WEB-INF/classes/" 
String decoded = URLDecoder.decode(r.getFile(), "UTF-8"); 

if (decoded.startsWith("/")) { 
    // path "C:/Program Files/Tomcat 6.0/webapps/myapp/WEB-INF/classes/" 
    decoded = decoded.replaceFirst("/", ""); 
} 
File f = new File(decoded, "somefile.properties"); 
Questions connexes