2017-04-03 11 views
0

이클립스에서 응용 프로그램을 시작할 때 src/main/resources 폴더 내에 등록 정보 파일을 가지고 있어도 문제가 없습니다. maven install을 실행할 때이 등록 정보 파일은 maven assembly의 도움을 받아 config 폴더에 저장됩니다. 그래서 문제 다음 : 나는 물론 더 이상이 파일에 도달 할 수등록 정보 파일을 넣을 곳 (메이븐 어셈블리와 관련하여)

File propsFile = new File("src/main/resources/settings.properties"); 

maven install 후 :

이클립스에서 작업하는 동안, 나는 특성으로 간단하게 파일에 액세스 할 수 있습니다. 하지만 어떤 워크 플로우가 내 일식 개발 중에 파일에 도달하고, maven install을 두 번 가지지 않고 최상의 것입니다! 이미 사전 :

당신이 스크립트 파일을 통해 응용 프로그램을 실행하는 경우
+0

을가 조립 된 후 응용 프로그램을 실행하는 방법? 메이븐을 통해? 간단한 시스템 스크립트를 통해? –

+0

예, .cmd 파일 사용 중 ... – pixelstuermer

답변

0

, 내가 포함 할 수 좋을 것에

application folder 
    |----bin 
     |----batch file to start my application 
    |----lib 
     |----my application jar 
     |----other dependencies jars 
    |----config 
     |----settings.properties 

덕분에 많은 :

maven install 후 내 어셈블리 구조는 다음과 같습니다 settings.properties가에있는 폴더 클래스 패스에 : 이클립스에서

  • 가 전혀 아무것도 할 필요는 모든 인터넷 때문에 src\main\resources의 파일은 실제로는 target\classes 출력 디렉토리 (실제로 classpath 표제)에 복사됩니다.입니다.

  • 그리고 스크립트 파일에서 실행 클래스 경로의 시작 부분에 <application>\config 파일 만 미리 보류하십시오.

그러나 당신은 당신이 프로그램에서 자료를 읽는 방법을 변경해야합니다 : ClassLoader.getResourceAsStream하여 File API를 사용하여 교체 :

InputStream input=getClass().getClassLoader().getResourceAsStream("settings.properties"); 
Properties properties=new Properties(input);