您的位置:首页 > 其它

maven编译过程中遇的相关问题

2016-12-29 16:43 309 查看


公司maven项目之前一直打包正常,但是今天编译时确出现了 出现致命错误:
在类路径或引导类路径中找不到程序包 java.lang


网上搜索一番,看到了这篇文单,受文章启发,搜索了项目pom.xml文件,细查看原来是有一个同事新增加了配置,但是配置有问题导致

<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<showWarnings>true</showWarnings>
<compilerArguments>

                     <verbose />

                      <bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>

                </compilerArguments>
</configuration>

是一个细节错误,把本改是 分号 ;  写成了冒号:   


引用地址:http://www.blogjava.net/wangxunhua/archive/2016/01/11/429000.aspx


pom.xml中的java.home变量(eclipse默认的java.home变量)

说说最近发现在的一个问题.

关于java.home这个变量

本机环境变量:

JAVA_HOME = C:\Java\jdk17045

eclipse Version: Mars.1 Release (4.5.1)
来由0:
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配置.

来由一: 

使用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不存在
这是由于我们的项目框架里面使用了这几个内部类.

解决办法:

修改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>
            ......
                    <!-- 编译插件 -->

                    <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
解决办法: 

从pom.xml文件的Effective POM可以查看到java.home变量被替换了成了:

<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页可以找到如下:

-vm

C:\Windows\system32\javaw.exe
java.home=C:\Java\jre7

通过修改eclipse.ini文件,在第一行加入如下:-vm

C:\Java\jdk17051\bin\

eclipse默认的环境变量变成:
java.home=C:\Java\jdk17051\jre
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐