2010-12-01 10 views
1

JDK의 tools.jar을 프로젝트 종속성으로 추가해야합니다.Maven systemPath가 런타임 클래스 경로에 추가되지 않았습니다.

Maven 저장소에 설치할 때 jar 파일에 버전 번호를 추가하기 때문에 정상 종속성으로 설정하는 것은 작동하지 않습니다. 그 후, classpath에 있어야 tool.jar이 필요한 무언가가 필요할 때 실패합니다.

시스템 범위를 사용하고 < systemPath>를 사용하여 jar에 대한 경로를 설정하면 문제가 해결됩니다. 그러나 테스트에서 jar는 클래스 경로에 추가되지만 런타임에는 그렇지 않습니다.

이 방법이 있습니까?

, BTW 내가 추가 한 < useManifestOnlyJar> 거짓 </useManifestOnlyJar> I 클래스 경로에있는 모든 파일을 볼 수 있도록 surefireplugin합니다.

+0

를 참조? 전쟁, 실행 가능한 병 또는 다른 것입니까? 시작 스크립트가 있습니까? 즉, Maven에서 준비한 런타임 클래스 경로를 어떻게 사용합니까? –

답변

3

Maven이 JDK에서 실행 중입니까?

는 JDK를 가리 키도록 JAVA_HOME의 ENV 변수를 설정 -ver

MVN, 그것은 실행중인 자바의 버전을 알아보십시오.

+1

+1 : JRE에서 Maven을 실행중인 경우 tools.jar은 런타임 클래스 경로에 포함되지 않습니다. – jgifford25

+0

JDK에서 실행중인 경우에도 java.home 속성은 여전히 ​​jre로 설정됩니다 (http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide 참조). – RCross

1

이 당신의 JDK를 사용 시스템 범위에 포함되어 있지 않은 경우, 런타임에서 응용 프로그램을 실행 할 방법 FAQ

<profiles> 
    <profile> 
    <id>default-tools.jar</id> 
    <activation> 
     <property> 
     <name>java.vendor</name> 
     <value>Sun Microsystems Inc.</value> 
     </property> 
    </activation> 
    <dependencies> 
     <dependency> 
     <groupId>com.sun</groupId> 
     <artifactId>tools</artifactId> 
     <version>1.4.2</version> 
     <scope>system</scope> 
     <systemPath>${java.home}/../lib/tools.jar</systemPath> 
     </dependency> 
    </dependencies> 
    </profile> 
</profiles> 
관련 문제