pom.xml中的java.home變量(eclipse默認的java.home變量)
說說最近發現在的一個問題.
關于java.home這個變量
本機環境變量:
JAVA_HOME = C:\Java\jdk17045
eclipse Version: Mars.1 Release (4.5.1)
關于java.home這個變量
本機環境變量:
JAVA_HOME = C:\Java\jdk17045
eclipse Version: Mars.1 Release (4.5.1)
來由0:
來由一:
使用maven編譯的時候出現如下錯誤:
解決辦法:
修改pom.xml在開發環境的編譯插件里面作如下配置:
來由二:
修改了如上之后,提交到倉庫會有問題,每個coder的java.home路徑都不一樣,造成倉庫的配置文件經常會沖突.
解決辦法:
去掉<java.home>C:\Java\jdk17045</java.home>配置.
這時java.home變量繼承自eclipse的java.home配置.從pom.xml文件的Effective POM可以查看到java.home變量被替換了.
來由三:
運行maven builde 命令,出現致命錯誤: 在類路徑或引導類路徑中找不到程序包 java.lang
C:\Java\jdk17051\bin\
eclipse默認的環境變量變成:
maven-install時出現這錯誤:
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
解決辦法:
window->Preference->Installed JREs,添加一個jdk配置(非JRE路徑).
并且在Builder Path里面更改JRE System Liberary為jdk配置.
解決辦法:
window->Preference->Installed JREs,添加一個jdk配置(非JRE路徑).
并且在Builder Path里面更改JRE System Liberary為jdk配置.
來由一:
使用maven編譯的時候出現如下錯誤:
[ERROR] /E:/workspace/wxis1.5/src/main/java/com/bd/MultDBPool/RhipDBManager.java:[27,31] 程序包com.sun.istack.internal不存在
[ERROR] /E:/workspace/wxis1.5/src/main/java/com/web/bd/weixin/util/RandomValidateCode.java:[13,32] 程序包com.sun.image.codec.jpeg不存在
這是由于我們的項目框架里面使用了這幾個內部類.[ERROR] /E:/workspace/wxis1.5/src/main/java/com/web/bd/weixin/util/RandomValidateCode.java:[13,32] 程序包com.sun.image.codec.jpeg不存在
解決辦法:
修改pom.xml在開發環境的編譯插件里面作如下配置:
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<package.environment>dev</package.environment>
<java.home>C:\Java\jdk17045</java.home>
</properties>
......<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<package.environment>dev</package.environment>
<java.home>C:\Java\jdk17045</java.home>
</properties>
<!-- 編譯插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<bootclasspath>${java.home}\jre\lib\rt.jar;${java.home}\jre\lib\charsets.jar;${java.home}\jre\lib\jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
......<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<bootclasspath>${java.home}\jre\lib\rt.jar;${java.home}\jre\lib\charsets.jar;${java.home}\jre\lib\jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
來由二:
修改了如上之后,提交到倉庫會有問題,每個coder的java.home路徑都不一樣,造成倉庫的配置文件經常會沖突.
解決辦法:
去掉<java.home>C:\Java\jdk17045</java.home>配置.
這時java.home變量繼承自eclipse的java.home配置.從pom.xml文件的Effective POM可以查看到java.home變量被替換了.
來由三:
運行maven builde 命令,出現致命錯誤: 在類路徑或引導類路徑中找不到程序包 java.lang
解決辦法:
-vm從pom.xml文件的Effective POM可以查看到java.home變量被替換了成了:
通過修改eclipse.ini文件,在第一行加入如下:<compilerArguments>
<bootclasspath>C:\Java\jre7\jre\lib\rt.jar;C:\Java\jre7\jre\lib\charsets.jar;C:\Java\jre7\jre\lib\jce.jar</bootclasspath>
</compilerArguments>
這個路徑多了一層jre目錄,因為依賴的是java.home路徑.去掉\jre這一層路徑即可.
問題在這里,為什么eclipse的java.home變量是C:\Java\jre7\,默認加載的是jre目錄,而不是我的jdk目錄.
eclipse的java.home路徑在help->about eclipse->Installation Details->configuration頁可以找到如下:

<bootclasspath>C:\Java\jre7\jre\lib\rt.jar;C:\Java\jre7\jre\lib\charsets.jar;C:\Java\jre7\jre\lib\jce.jar</bootclasspath>
</compilerArguments>
這個路徑多了一層jre目錄,因為依賴的是java.home路徑.去掉\jre這一層路徑即可.
問題在這里,為什么eclipse的java.home變量是C:\Java\jre7\,默認加載的是jre目錄,而不是我的jdk目錄.
eclipse的java.home路徑在help->about eclipse->Installation Details->configuration頁可以找到如下:
-vm
C:\Windows\system32\javaw.exe
C:\Windows\system32\javaw.exe
java.home=C:\Java\jre7
C:\Java\jdk17051\bin\
eclipse默認的環境變量變成:
java.home=C:\Java\jdk17051\jre

posted on 2016-01-11 14:04 嘰哩咕嚕 閱讀(12784) 評論(0) 編輯 收藏 所屬分類: maven