2010-12-01 250 views
1

我需要将JDK的tools.jar添加为项目依赖项。Maven systemPath未添加到运行时类路径

将其设置为普通依赖不起作用,因为将其安装到Maven存储库时,会向该jar文件添加版本号。之后,当我需要某些需要tools.jar的东西放在类路径中时,它会失败。

使用系统范围并使用<系统路径>设置到jar的路径应该解决问题。但是,尽管在测试中jar被添加到类路径中,但在运行时却不是。

有没有办法解决这个问题?

顺便说一下,我已经将< useManifestOnlyJar> false </useManifestOnlyJar>添加到surefireplugin中,以便我可以看到类路径中的每个文件。

+0

你怎么跑在应用程序运行时?是战争,可执行jar还是其他?有没有启动脚本?换句话说,您如何使用Maven准备的运行时类路径? – 2011-08-18 09:34:39

回答

3

Maven是否运行在JDK中?

了解它的运行的Java版本,

MVN -ver

设置你的JAVA_HOME环境变量指向一个JDK。

+1

+1:如果您在JRE下运行Maven,tools.jar将不在运行时类路径中。 – jgifford25 2010-12-02 14:52:24

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>