This reference解释了如何在依赖项中包含tools.jar
。
但我不知道我应该在哪里插入该代码?
我应该将它插入Maven的setting.xml
还是我的Java项目的pom.xml
?
我在Eclipse 4.5.2中使用了默认maven(Win7中的Mars.2版本)。
我想在项目中加入tools.jar
。
我可以使用以下代码将其包含在pom.xml
。
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<scope>system</scope>
<version>1.4.2</version>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
我还想要尝试使用java.home
,而不是JAVA_HOME
。
我只知道它们不同,但我并不完全清楚它们之间的区别。
阅读完该参考资料后,我想尝试一下。但我失败了。
那么我应该如何使用java.home
配置pom.xml
文件以包含tools.jar
?
更新
我可以像这样引用java.home
:
<project ...>
...
<properties>
<java.home>D:\Program Files\Java\jdk1.6.0_45</java.home>
</properties>
<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>
</project>
答案 0 :(得分:2)
您可以在profile
中定义类似的pom.xml
作为 -
<!--This can help you use a custom java home path-->
<properties>
<java.home>/your/path/to/java</java.home>
</properties>
...
<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}/relative/path/to/lib/tools.jar</systemPath>
</dependency>
</dependencies>
</profile>
使用reference mentioned形成上面的个人资料。
您需要在properties
下指定自定义Java主目录的路径,这可以在systemPath
下的tools.jar
中进一步替换它,您将进一步指定Input = input("TYPE: ")
with open("tryme.txt","a+") as f:
f.write(Input + "\n\n\n" )
f.seek(0,0)
x = f.read()
print(x)
的相对路径
答案 1 :(得分:0)
@nullpointer是正确的,只是为了添加关于你的java home的maven属性,你可以看到Maven java.home属性的输出与运行mvn validate
的JAVA_HOME环境变量相比并添加到你的pom下面的代码片段:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Displaying value of java home property: ${java.home}</echo>
<echo>Displaying value of JAVA_HOME variable: ${env.JAVA_HOME}</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
例如,在我的系统上,它输出(除其他外):
[echo] Displaying value of java home property: /usr/lib/jvm/java-8-openjdk-amd64/jre
[echo] Displaying value of JAVA_HOME variable: /usr/lib/jvm/java-8-openjdk-amd64