Este artículo describe el método para obtener la ruta absoluta de un archivo por Java. Compártelo para su referencia. El método de implementación específico es el siguiente:
Copie el código de la siguiente manera:/**
* Obtenga la ruta absoluta donde se encuentra el archivo de clase de una clase. Esta clase puede ser una clase de JDK, una clase definida por el usuario o una clase en un paquete de desarrollo de terceros.
* Mientras sea una clase que se pueda cargar en este programa, se puede ubicar en la ruta absoluta de su archivo de clase.
*
* @param CLS
* Atributo de clase de un objeto
* @return La ruta absoluta a la ubicación del archivo de clase de esta clase. Si no hay definición para esta clase, NULL se devuelve.
*/
String privado getPathFromClass (clase CLS) lanza ioexception {
Ruta de cadena = nulo;
if (cls == null) {
tirar nueva nullpointerException ();
}
URL url = getClassLocationUrl (CLS);
if (url! = null) {
ruta = url.getPath ();
if ("jar" .equalSignorEcase (url.getProtocol ())) {
intentar {
ruta = nueva url (ruta) .getPath ();
}
Catch (malformedurexception e) {
}
int ubicación = path.indexof ("!/");
if (ubicación! = -1) {
ruta = Path.Substring (0, ubicación);
}
}
Archivo archivo = nuevo archivo (path.replaceall ("%20", ""));
path = file.getCanonicalPath ();
}
ruta de retorno;
}
/**
* Obtenga la URL de la ubicación del archivo de clase. Este método es el método más básico de esta clase y es para otros métodos a llamar.
*/
URL privada getClassLocationUrl (Cls de clase final) {
if (cls == null) {
tirar nueva ilegalargumentException ("clase que la entrada es nula");
}
Resultado de URL = nulo;
Cadena final clsasresource = cls.getName (). reemplazar ('.', '/').concat(".class ");
ProtectionDomain final PD = cls.getProtectionDomain ();
if (pd! = null) {
CodeSource final CS = Pd.getCodeSource ();
if (cs! = null) {
resultado = cs.getLocation ();
}
if (resultado! = null) {
if ("file" .equals (result.getProTocol ())) {
intentar {
if (resultado.toExternalForm (). Endswith (".
resultado = new Url ("Jar:". Concat (resultado.toExternalForm ()). Concat ("!/"). Concat (ClSasResource));
}
else if (new File (result.getFile ()). ISDirectory ()) {
resultado = nueva URL (resultado, ClSasResource);
}
}
Catch (malformedurexception ignore) {
}
}
}
}
if (result == null) {
Final ClassLoader CLSLoader = cls.getClassLoader ();
resultado = clsloader! = null?
}
resultado de retorno;
}
Espero que este artículo sea útil para la programación Java de todos.