Maison > Java > javaDidacticiel > le corps du texte

Obtenir le chemin JAVA, y compris une explication détaillée des chemins en dehors de CLASSPATH

Y2J
Libérer: 2017-04-27 09:23:13
original
1895 Les gens l'ont consulté

Cet article est une analyse détaillée et une introduction à la méthode d'obtention du chemin JAVA, y compris les chemins autres que CLASSPATH. Les amis dans le besoin peuvent se référer à

pour résumer certaines méthodes d'obtention du chemin JAVA. en ligne :
Remarque : si vous démarrez le programme à partir de ANT, la sortie de this.getClass().getResource("") est étrange. Vous pouvez le déboguer avec succès directement avec la ligne de commande JAVA.
Quelques méthodes pour obtenir le chemin de classe et le chemin absolu de la classe actuelle
Méthodes pour obtenir le chemin en dehors de CLASSPATH :

URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testjava/build/classes/net/ String path = new File(base.getFile(), "……/……/……/"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name
Copier après la connexion

Voici quelques-unes méthodes pour obtenir le chemin de classe et la classe actuelle Quelques méthodes de chemins absolus de classes. Vous devrez peut-être utiliser certaines de ces méthodes pour obtenir le chemin absolu vers la ressource dont vous avez besoin.

1.FileTest.class.getResource("")
Copier après la connexion

Par exemple : file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

2.FileTest.class.getResource("/")
Copier après la connexion

Ce que vous obtenez est le chemin actuel de l'URI absolu du chemin de classe.
Par exemple : file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

3.Thread.currentThread().getContextClassLoader().getResource("")
Copier après la connexion

L'obtenu est également le chemin URI absolu du ClassPath actuel.
Par exemple : file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

4.FileTest.class.getClassLoader().getResource("")
Copier après la connexion

L'obtenu est également le chemin URI absolu du ClassPath actuel.
Par exemple : file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

5.ClassLoader.getSystemResource("")
Copier après la connexion

L'obtenu est également le chemin URI absolu du ClassPath actuel.
Par exemple : file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
Je recommande d'utiliser Thread.currentThread().getContextClassLoader().getResource("") pour obtenir le chemin absolu du notation URI actuelle du chemin de classe.
Dans les applications web, on obtient généralement le chemin absolu du répertoire racine de l'application web via la méthode ServletContext.getRealPath ("/"). De cette façon, il suffit de fournir le chemin relatif au répertoire racine de l'application Web pour construire un chemin absolu pour localiser la ressource.
Remarques :
1. Essayez de ne pas utiliser de chemins relatifs par rapport au répertoire utilisateur actuel de System.getProperty ("user.dir"). Il s’agit d’une bombe à retardement qui pourrait vous tuer à tout moment.
2. Essayez d'utiliser des ressources de chemin absolu sous forme d'URI. Il peut être facilement converti en objets URI, URL et File.
3. Essayez d'utiliser des chemins relatifs par rapport au chemin de classe. N'utilisez pas de chemins absolus. À l’aide de la méthode d’URL statique publique getExtendResource(String relativePath) de la classe ClassLoaderUtil ci-dessus, vous pouvez déjà localiser des ressources à tous les emplacements à l’aide de chemins relatifs par rapport au chemin de classe.
4. N'utilisez jamais de chemins absolus codés en dur. Parce que nous pouvons utiliser la méthode getResource("") de la classe ClassLoader pour obtenir le chemin absolu du chemin de classe actuel.
L'utilisation de chemins absolus codés en dur est totalement inutile ! Cela rendra certainement votre mort moche ! Le programme ne sera pas portable !
Si vous devez spécifier un chemin absolu, alors utiliser un fichier de configuration est bien mieux que coder en dur !
Bien sûr, je vous recommande quand même d'utiliser un programme pour obtenir le chemin absolu du classpath pour épeler le chemin absolu de la ressource

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal