이 기사에서는 Java에 의해 파일의 절대 경로를 얻는 방법에 대해 설명합니다. 참조를 위해 공유하십시오. 특정 구현 방법은 다음과 같습니다.
다음과 같이 코드를 복사하십시오 :/**
* 클래스의 클래스 파일이있는 절대 경로를 얻으십시오. 이 클래스는 JDK 자신의 클래스, 사용자 정의 클래스 또는 타사 개발 패키지의 클래스 일 수 있습니다.
*이 프로그램에서로드 할 수있는 클래스 인 한 클래스 파일의 절대 경로에 위치 할 수 있습니다.
*
* @Param CLS
* 객체의 클래스 속성
* @이 클래스의 클래스 파일 위치로의 절대 경로. 이 클래스에 대한 정의가 없으면 NULL이 반환됩니다.
*/
개인 문자열 getPathFromClass (클래스 CLS)는 IOException {
문자열 경로 = null;
if (cls == null) {
새로운 nullpointerexception ()을 던지십시오.
}
url url = getClassLocationUrl (CLS);
if (url! = null) {
path = url.getPath ();
if ( "jar".equalsignorecase (url.getProtocol ())) {
노력하다 {
경로 = new URL (Path) .getPath ();
}
CATCH (marformedurlexception e) {
}
int location = path.indexof ( "!/");
if (location! = -1) {
Path = Path.Substring (0, 위치);
}
}
파일 파일 = 새 파일 (path.replaceall ( "%20", "");
Path = file.getCanonicalPath ();
}
반환 경로;
}
/**
* 클래스 파일 위치의 URL을 가져옵니다. 이 방법은이 클래스의 가장 기본적인 방법이며 다른 방법으로 호출하는 것입니다.
*/
개인 URL getClassLocationUrl (최종 클래스 CLS) {
if (cls == null) {
새로운 불법 행위 exception ( "입력이 널 인 클래스")을 던지십시오.
}
URL 결과 = null;
최종 문자열 clsasresource = cls.getName (). replace ( '.', '/').concat(" .class ");
최종 ProtectionDomain pd = cls.getProtectionDomain ();
if (pd! = null) {
최종 코드 소스 CS = PD.GetCodesOURCE ();
if (cs! = null) {
결과 = cs.getLocation ();
}
if (result! = null) {
if ( "file".equals (result.getProtocol ())) {
노력하다 {
if (result.toexternalform (). endswith ( ". jar") || result.toexternalform (). endswith ( ". zip")) {
result = new URL ( "jar :". concat (result.toexternalform ()). concat ( "!/"). concat (clsasresource));
}
else if (새 파일 (result.getfile ()). isdirectory ()) {
결과 = 새로운 URL (result, clsasresource);
}
}
CATCH (mullformedurlexception 무시) {
}
}
}
}
if (result == null) {
최종 클래스 로더 Clsloader = Cls.getClassLoader ();
result = clsloader! = null?
}
반환 결과;
}
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.