2012-05-02 1 views
2

각 Eclipse 프로젝트에 대해 다른 구성 파일을 구문 분석해야하는 구성 클래스를 고려하십시오.Eclipse : 프로젝트 이름을 VM 인수로 가져 오기?

예를 들어 Configuration 클래스가 Project1에서 호출되면, 그것은 special/path/fileX을 분석해야하고,이 Project2에서 호출되는 경우, 그것은 special/path/fileY을 분석해야한다.

나는 using Eclipse's {project_name}을 시도했지만 놀랍게도 현재 클래스의 부모 프로젝트가 아니라 커서에 의해 강조 표시된 프로젝트로 파싱되고 있습니다.

Eclipse 런타임에서 한 프로젝트와 다른 프로젝트를 어떻게 구별 할 수 있습니까? JVM 인수를 사용하는 것이 좋습니다.

+0

파일 경로/이름을 호출에서 구성 클래스로 전달하는 이유는 무엇입니까? –

+0

질문을 이해하지 못합니다.이 코드는 어디에 실행되고 있습니까? IDE에서 또는 RCP 앱입니까? 아니면 다른 것입니까? –

+0

나는 선택의 단일 지점을 원한다. 'Configuration' 클래스는 프로젝트의 많은 클래스에서 호출됩니다 - 전체 프로젝트의 파일을 한번에 변경할 수있는 기능이 필요합니다. –

답변

2

이것은 설명 된 문제의 해결 방법이지만, Eclipse와 독립적이며 프로덕션 환경에서도 쉽게 작동하기 때문에 더 나은 솔루션이라고 생각합니다.

단순히 관계없이 클래스 경로에서 같은 파일을로드 당신이에서이 시작중인 프로젝트 :

/my/file/from/classpath.txt 

만 Project1의/Project2에이 파일을 넣어 다양한 파일은 서로에 따라 자신을 등 제외하는 것이 귀하의 설정 :

/Project1/src/my/file/from/classpath.txt 
/Project2/src/my/file/from/classpath.txt 

여기서 src은 Java 원본 폴더입니다. 이제는 여전히 JVM 매개 변수를 사용하여이를 대체하거나 위의 내용이 누락 된 경우 기본값을 제공 할 수 있습니다.

0

가장 쉬운 방법은 Eclipse의 실행 구성을 사용하는 것이라고 생각합니다. 원하는만큼 많은 구성을 작성하고 원하는 모든 JVM 인수를 제공 한 다음이를 사용하여 시작할 수 있습니다. 이것은 또한 생산 모드에서 할 일에 매우 가깝습니다.

+0

고마워요. 문제는 사용자가 각 JUnit마다 다른 실행 구성을 정의해야한다는 것이므로 번거로울 수 있습니다. –

0

또는 Eclipse의 '설치된 JRE'로 이동하여 환경 설정을 JVMArgs로 설정할 수 있습니다.

필요하면 env마다 JRE의 diff 복사본을 만들 수 있습니다.

IDE에서 실행중인 경우System.getProperty ("user.dir") 이 프로젝트의 루트 여야합니다.

시스템 속성을 사용하여 수신자를 추적 할 수 있습니다. 더 나은 방법으로, 설치된 JRE의 JVM Args를 다음과 같이 설정하십시오.

-Dtheflaginprod=${project_loc} 

project_loc = absolute path of the the project (/usr/projects/project1) 
project_path = project name relative to the workspace (/project1)