2016-06-14 18 views
0

는 그래서 자바 프로젝트를 가지고 있고, 나는 현재Java에서 파일 이름을 포함한 프로젝트 파일 경로를 얻는 방법은 무엇입니까?

String pathname = test.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); 

는 IS이 반환/홈/mrpickles/데스크탑/HANSTUFF/securesdk/SRC를 사용하여 파일의 경로를 얻을 수 있어요 path "JavaTest"클래스와 함께 "JavaWrapper.java"라고하는 내 파일에. 내가 반환하고 싶은 것은 "/home/mrpickles/Desktop/HANSTUFF/securesdk/src/JavaWrapper.java로, 경로에 파일 이름이 포함되어 있습니다. 어떻게합니까?

+0

가능한 중복 http://stackoverflow.com/questions/19451480/get-path-of-current-file – alexbt

답변

0

실제로는 할 수 없습니다. .

당신은 .java 파일, 바로 컴파일 후 .class 파일로 변환되어 있음을 알 수 있습니까? 당신은 보존 할 수 있습니다

있는 유일한 방법은 패키지 구조입니다. 또한 하나의 .java 파일은 일치 하나의 공용 클래스를 포함 할 수 있습니다 .java 파일 이름이지만 이름이 다른 여러 클래스를 포함 할 수 있습니다.

.java 파일을 .class 개의 파일로 컴파일 한 후에는 동일한 패키지 구조로 유지하여 다른 위치로 이동할 수 있습니다. 따라서 귀하의 출처는 .java이며 파일 위치는 .class과 다를 수 있습니다.

업데이트 :

클래스 파일이로드되는 곳에서 당신은 기본 전체 클래스 이름과 위치를 인쇄 할 수 있습니다

public class Test { 
    public static void main(String[] args) { 
     Test test =new Test(); 
     System.out.println("Class Name: "+test.getClass().getSimpleName()); 
     System.out.println("With Package Name: "+test.getClass().getName()); 
     System.out.println("Location: "+ClassLoader.getSystemResource("Test.class")); 
    } 
} 

출력 :

Class Name: Test 
With Package Name: com.test.Test 
Location: file:/C:/workspace/Test-Project/build/classes/Test.class 
+0

알아요. . 제가 말하고자하는 것은 클래스의 이름을 가진 경로를 얻는 방법입니다. 예를 들어, JavaWrapper.java 내의 my class는 JavaTest.class입니다. 저를 포함하여 그 길을 얻을 수있는 방법이 있습니까? 감사. –

+0

@ Mr.Pickles 답변을 업데이트했습니다. – K139

관련 문제