Java 프로그램이 파일 시스템에서 위치를 결정하는 방법이 있습니까?Java에서 파일 경로 얻기
8
A
답변
11
이 경우 CodeSource#getLocation()
을 사용할 수 있습니다. CodeSource
은 ProtectionDomain#getCodeSource()
입니다. ProtectionDomain
은 Class#getProtectionDomain()
에 의해 이용 가능합니다.
URL location = getClass().getProtectionDomain().getCodeSource().getLocation();
File file = new File(location.getPath());
// ...
문제의 Class
의 정확한 위치를 반환합니다.
업데이트 : 의견에 따르면, 이미 클래스 경로에 있습니다. 그런 다음 루트 패키지 상대 경로를 전달하는 ClassLoader#getResource()
을 사용할 수 있습니다.
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("filename.ext");
File file = new File(resource.getPath());
// ...
당신은 그것은 InputStream
이 ClassLoader#getResourceAsStream()
을 사용으로 얻을 수 있습니다.
InputStream input = classLoader.getResourceAsStream("filename.ext");
// ...
또한 패키지 된 리소스를 사용하는 일반적인 방법이기도합니다. 패키지 내에있는 경우 대신 com/example/filename.ext
을 사용하십시오. 현재 실행중인 프로그램의 "작업 디렉토리"를 얻으려면
-1
0
근무, 나는 파일의 정확한 이름이 무엇인지 알고 때
File f = new File("OutFile.txt");
System.out.println("f.getAbsolutePath() = " + f.getAbsolutePath());
또는도이 솔루션이 : http://docs.oracle.com/javase/tutorial/essential/io/find.html
관련 문제
- 1. 이미지 파일 경로 얻기
- 2. 현재 jre의 파일 경로 얻기
- 3. Java에서 폴더의 파일 수 얻기
- 4. git에서 전체 파일 경로 얻기 merge
- 5. GWT FileUpload 파일 전체 경로 얻기
- 6. 파이썬에서 절대 파일/dir 경로 얻기
- 7. 특정 디렉토리에 상대적인 파일 경로 얻기
- 8. 카메라의 경로 및 파일 이름 얻기 결과
- 9. addr2line에서 전체 경로 얻기
- 10. Java에서 드라이브 이름 얻기
- 11. 파일의 Wine 경로 얻기
- 12. 현재 어셈블리의 경로 얻기
- 13. 파일의 절대 경로 얻기
- 14. 컨텍스트 경로 얻기
- 15. 객체의 절대 경로 얻기
- 16. 런타임시 python.exe 경로 얻기
- 17. 델파이의 상대 경로 얻기
- 18. 계산기로 Java에서 결과 얻기
- 19. Java에서 Tomcat 사용자 얻기
- 20. Java에서 디렉토리 이름 얻기
- 21. Java에서 기본 루트 디렉토리 얻기
- 22. 얻기 모듈 경로 가져 오기 경로
- 23. 파일 dir 얻기
- 24. Java에서 프로젝트 폴더의 절대 경로
- 25. 현재 이미지의 경로 얻기 - jQuery
- 26. 콘텐츠 확인자의 실제 경로 얻기
- 27. 안드로이드에서 내 클래스가있는 경로 얻기
- 28. vb6에서 winzip의 설치 경로 얻기
- 29. Grails : BootStrap.groovy에서 컨텍스트 경로 얻기
- 30. HTML 입력 파일의 코드 숨김에서 전체 파일 경로 얻기
+1,하지만주의 P rotectionDomain.getCodeSource() 및 CodeSource.getLocation()은 둘 다 null 일 수 있습니다. –
@bkail : 제대로 개발되지 않은 자체적 인 클래스 로더를 사용하여로드되거나 일부 외부 스트림 소스 등에서로드 될 때 실제로 null을 반환 할 수 있습니다. 그러나 이는 일반적으로 '기본'Java 프로그램에 적용되지 않습니다. '. – BalusC
이것은 확실히 할 일을하지만,별로 좋지 않습니다. 내가해야 할 일은 내 jar와 같은 폴더에 있어야하지만 어느 위치에서나 실행할 수있는 구성 파일을로드하는 것입니다. 이것이 파일 위치 정보를 얻는 올바른 방법입니까? – markovuksanovic