Eclipse에서 IntelliJ 또는 다른 방법으로 마이그레이션하는 사용자에게는 속성 파일 또는 기타 리소스 파일로 작업 할 때 유용한 팁이 있습니다.
그것의 미친 짓 (저의 밤을 알아내는 데 드는 비용)이지만 IDE에서 로컬로 실행하거나 디버깅하는 동안 리소스 / 속성 파일을 찾을 때 IDE의 작업은 상당히 다릅니다. (.jar로 패키징하는 것도 상당히 다르지만 더 잘 문서화되어 있습니다.)
코드에 다음과 같은 상대 경로 참조가 있다고 가정합니다.
new FileInputStream("xxxx.properties");
(JAR와 함께 패키징하고 싶지 않은 env 특정 .properties 파일로 작업하는 경우 편리합니다)
인텔리
(나는 13.1을 사용하지만 더 많은 버전에서 유효 할 수 있습니다)
xxxx.properties 파일은 IntelliJ에서 이와 같이 런타임에 선택되기 위해 프로젝트 ROOT의 PARENT dir에 있어야합니다. (프로젝트 ROOT는 / src 폴더가있는 곳입니다.)
식
Eclipse는 xxxx.properties 파일이 프로젝트 ROOT 자체에있을 때 행복합니다.
따라서 IntelliJ는 .properties 파일이 이와 같이 참조 될 때 Eclipse보다 1 수준 더 높을 것으로 예상합니다 !!
이는 또한 내 보낸 .jar에 동일한 코드 줄 (new FileInputStream ( "xxxx.properties");)이있을 때 코드를 실행해야하는 방식에도 영향을줍니다. 민첩하고 .properties 파일을 jar와 함께 패키징하지 않으려면 명령 줄에서 .properties 파일을 올바르게 참조하기 위해 아래와 같이 jar를 실행해야합니다.
INTELLIJ 내보내기 JAR
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
ECLIPSE 내보내기 JAR
java -jar some.jar
Eclipse에서 내 보낸 실행 가능 jar는 참조 된 .properties 파일이 .jar 파일이있는 위치와 동일한 위치에있을 것으로 예상합니다.