Cet article décrit la méthode d'obtention du chemin absolu d'un fichier par Java. Partagez-le pour votre référence. La méthode de mise en œuvre spécifique est la suivante:
Copiez le code comme suit: / **
* Obtenez le chemin absolu où se trouve le fichier de classe d'une classe. Cette classe peut être une classe JDK, une classe définie par l'utilisateur ou une classe dans un package de développement tiers.
* Tant qu'il s'agit d'une classe qui peut être chargée dans ce programme, elle peut être située sur le chemin absolu de son fichier de classe.
*
* @param CLS
* Attribut de classe d'un objet
* @return le chemin d'accès absolu vers l'emplacement du fichier de classe de cette classe. S'il n'y a pas de définition pour cette classe, Null est retourné.
* /
String privé getPathFromClass (classe CLS) lance ioException {
String path = null;
if (cls == null) {
lancer un nouveau nullpointerException ();
}
Url url = getClassLocationUrl (CLS);
if (url! = null) {
path = url.getPath ();
if ("jar" .equalSignoreCase (url.getProtoCol ())) {
essayer {
path = new url (path) .getPath ();
}
Catch (malformEdUrlexception e) {
}
int location = path.indexof ("! /");
if (emplacement! = -1) {
path = path.substring (0, emplacement);
}
}
File file = new File (path.replaceALL ("% 20", ""));
path = file.getCanonicalPath ();
}
chemin de retour;
}
/ **
* Obtenez l'URL de l'emplacement du fichier de classe. Cette méthode est la méthode la plus élémentaire de cette classe et consiste à appeler d'autres méthodes.
* /
URL privée GetClassLocationUrl (Final Class CLS) {
if (cls == null) {
Jetez un nouveau IllégalArgumentException ("Classe qui entrée est nul");
}
Résultat de l'URL = null;
String final clsasResource = cls.getName (). Remplace ('.', '/').concat(".class ");
Final ProtectionDomain Pd = Cls.getProtectionDomain ();
if (pd! = null) {
codes final CS = pd.getCoDesource ();
if (cs! = null) {
result = cs.getLocation ();
}
if (résultat! = null) {
if ("fichier" .equals (result.getProtoCol ())) {
essayer {
if (result.toexternalform (). Endswith (". jar") || result.toexternalform (). Endswith (". zip")) {
result = new URL ("Jar:". Concat (result.toExternalForm ()). Concat ("! /"). Concat (ClSasResource));
}
else if (nouveau fichier (result.getFile ()). IsDirectory ()) {
result = nouvelle URL (résultat, CLSasResource);
}
}
Catch (malformedUrlexception ignore) {
}
}
}
}
if (result == null) {
Classloadher final clSloader = cls.getClassloadher ();
result = CLSloader! = null?
}
Résultat de retour;
}
J'espère que cet article sera utile à la programmation Java de tous.