Java : 모든 모듈 외부의 상대 경로에 액세스

Stelios

여러 모듈로 구성된 Java 프로젝트가 있습니다.

myWebApp
  - conf     //not a java module, just text files
  - ModuleA
      -- src
      -- target
      -- moduleA.iml
      -- pom.xml
  - ModuleB
     ...
  - pom.xml
  - myWebApp.iml
  - myWebApp.env

다음 myWebApp.env과 같이 클래스 (분명히 모듈의 src 폴더 아래에 있음)에서 파일 (Java 속성 파일) 에 액세스 하고 싶습니다.

InputStream is = new FileInputStream(<RelativePathToEnvFile>);

문제는 상대 경로가 모듈의 소스 루트 아래의 하위 디렉토리 또는 여기에 언급 된 getResource () 트릭을 사용하는 클래스 경로 내부의 모든 위치에서만 작동하는 것처럼 보인다는 것입니다 .

다른 모든 언어에서는 다음과 같이 할 수 있습니다.

InputStream is = new FileInputStream("../../../../../myWebApp.env");

이것은 자바에서 가능하지 않습니까?

제럴드 뮈케

Java 7부터 NIO Files API로이 작업을 수행 할 수 있습니다 (이전 파일 API도 작동하지만 상대 경로 확인은 NIO에서 더 잘 수행됨).

File file = Paths.get("../../pom.xml").toFile();

파일이 올바른지 확인하기 위해 호출 toRealPath()하여 상대 경로 세그먼트를 확인할 수 있습니다.

File file = Paths.get("../../pom.xml").toRealPath().toFile();

시작할 작업 디렉토리가있는 경우 다음에서 상대 경로를 확인할 수 있습니다.

File file = Paths.get(".") //the current working dir
                 .resolve("../pom.xml") //navigate to a relative path
                 .toFile(); //convert to old File api

IDE로 작업 할 때 작업 디렉토리가 올바른지 확인해야합니다. 작업 디렉토리가 실행 된 클래스가 속한 것과 동일한 모듈 디렉토리 일 필요는 없습니다. 작업 디렉토리는 프로젝트 / 부모 모듈의 디렉토리 일 수 있습니다.

또한 코드는 특정 설정에서만 작동 할 수 있습니다. 적어도 모듈 중 하나의 리소스 폴더에 env 파일을 넣거나 (또는 ​​별도의 구성 모듈이있는) 클래스 경로에서 파일을 확인해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

지역 내부 클래스에서 외부 개체에 대한 모의 액세스

분류에서Dev

자신의 모듈에있는 모든 모듈에 대한 스프링 부팅 단위 테스트를 실행

분류에서Dev

외부 모듈에서 리소스 파일에 액세스

분류에서Dev

Java 9 오류 : 모듈 소스 경로의 모듈에 없음

분류에서Dev

(팬더) 인덱스의 특정 열에 대해 처음 3 개를 제외한 모든 행에 액세스

분류에서Dev

Electron의 필수 JS 모듈에서 상위 변수에 액세스

분류에서Dev

S3 버킷 내부의 개인 폴더에 액세스하는 사용자를 제외한 모든 사용자에 대한 액세스 거부

분류에서Dev

Postgres의 모든 테이블에 대한 액세스 권한 부여

분류에서Dev

'kotlin.String'의 상위 유형 인 'java.io.Serializable'에 액세스 할 수 없습니다. 누락되거나 충돌하는 종속성에 대한 모듈 클래스 경로를 확인하십시오.

분류에서Dev

모든 모듈의 Python 액세스 구성 파일

분류에서Dev

codeigniter에서 일부를 제외한 모든 PHP 파일에 대한 직접 액세스 차단

분류에서Dev

외부 XAML 파일의 DataTemplate에서 부모에 액세스

분류에서Dev

선택한 프로세스를 제외한 모든 프로세스에 대한 인터넷 액세스를 어떻게 거부 할 수 있습니까?

분류에서Dev

Browserify의 각 모듈에서 데이터에 대한 전체 액세스 구현

분류에서Dev

foreach로 클래스의 모든 인스턴스에 액세스

분류에서Dev

모듈을 포함하고 클래스의 상수에 액세스

분류에서Dev

NSSet 내의 모든 값에 액세스

분류에서Dev

JS 모듈 내부의 HTML에서 함수에 액세스

분류에서Dev

github의 하위 모듈에 대한 액세스 권한

분류에서Dev

Java의 모든 클래스 파일에서 MODULE 변수에 대한 최상의 액세스 수정 자?

분류에서Dev

Python 로깅의 여러 모듈에서 로거에 액세스

분류에서Dev

내부 Grails 모듈에 액세스

분류에서Dev

한 폴더의 콘텐츠를 제외한 모든 콘텐츠에 대한 액세스 거부

분류에서Dev

모듈의 변수에 액세스 / Python의 모듈 범위

분류에서Dev

Windows의 모든 코어에 액세스하지 않는 Java 프로세스

분류에서Dev

PowerShell로 데이터 세트의 모든 행에 액세스

분류에서Dev

VB 모듈의 액세스 양식에서 텍스트 상자 입력 참조

분류에서Dev

Symfony 3.1에서 웹 디렉토리 외부의 모든 파일에 대한 보안 액세스

분류에서Dev

모듈 간의 상대 경로 필요

Related 관련 기사

  1. 1

    지역 내부 클래스에서 외부 개체에 대한 모의 액세스

  2. 2

    자신의 모듈에있는 모든 모듈에 대한 스프링 부팅 단위 테스트를 실행

  3. 3

    외부 모듈에서 리소스 파일에 액세스

  4. 4

    Java 9 오류 : 모듈 소스 경로의 모듈에 없음

  5. 5

    (팬더) 인덱스의 특정 열에 대해 처음 3 개를 제외한 모든 행에 액세스

  6. 6

    Electron의 필수 JS 모듈에서 상위 변수에 액세스

  7. 7

    S3 버킷 내부의 개인 폴더에 액세스하는 사용자를 제외한 모든 사용자에 대한 액세스 거부

  8. 8

    Postgres의 모든 테이블에 대한 액세스 권한 부여

  9. 9

    'kotlin.String'의 상위 유형 인 'java.io.Serializable'에 액세스 할 수 없습니다. 누락되거나 충돌하는 종속성에 대한 모듈 클래스 경로를 확인하십시오.

  10. 10

    모든 모듈의 Python 액세스 구성 파일

  11. 11

    codeigniter에서 일부를 제외한 모든 PHP 파일에 대한 직접 액세스 차단

  12. 12

    외부 XAML 파일의 DataTemplate에서 부모에 액세스

  13. 13

    선택한 프로세스를 제외한 모든 프로세스에 대한 인터넷 액세스를 어떻게 거부 할 수 있습니까?

  14. 14

    Browserify의 각 모듈에서 데이터에 대한 전체 액세스 구현

  15. 15

    foreach로 클래스의 모든 인스턴스에 액세스

  16. 16

    모듈을 포함하고 클래스의 상수에 액세스

  17. 17

    NSSet 내의 모든 값에 액세스

  18. 18

    JS 모듈 내부의 HTML에서 함수에 액세스

  19. 19

    github의 하위 모듈에 대한 액세스 권한

  20. 20

    Java의 모든 클래스 파일에서 MODULE 변수에 대한 최상의 액세스 수정 자?

  21. 21

    Python 로깅의 여러 모듈에서 로거에 액세스

  22. 22

    내부 Grails 모듈에 액세스

  23. 23

    한 폴더의 콘텐츠를 제외한 모든 콘텐츠에 대한 액세스 거부

  24. 24

    모듈의 변수에 액세스 / Python의 모듈 범위

  25. 25

    Windows의 모든 코어에 액세스하지 않는 Java 프로세스

  26. 26

    PowerShell로 데이터 세트의 모든 행에 액세스

  27. 27

    VB 모듈의 액세스 양식에서 텍스트 상자 입력 참조

  28. 28

    Symfony 3.1에서 웹 디렉토리 외부의 모든 파일에 대한 보안 액세스

  29. 29

    모듈 간의 상대 경로 필요

뜨겁다태그

보관