求教关于maven编译找不到java.lang包的问题

时间:2021-07-19 09:28:37
最近自己写了一个写了一个demo,环境为maven+spring+mybatis+springMVC jdk版本为1.6 中间件为tomcat
然而在对项目打包时提示错误如下:
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.363s
[INFO] Finished at: Tue Aug 25 08:56:08 CST 2015
[INFO] Final Memory: 23M/348M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project mydemo: Compilation failure
[ERROR] Failure executing javac, but could not parse the error:
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\dao\user\impl\UserDaoImpl.java]
[ERROR] [解析已完成时间 15ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\entity\User.java]
[ERROR] [解析已完成时间 3ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\dao\base\impl\BaseDaoImpl.java]
[ERROR] [解析已完成时间 2ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\pojo\PageResult.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\service\base\impl\BaseServiceImpl.java]
[ERROR] [解析已完成时间 0ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\dao\base\BaseDao.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\service\user\UserService.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\service\base\BaseService.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\util\CommonUtils.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\util\SecretUtils.java]
[ERROR] [解析已完成时间 2ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\util\JsonUtils.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\action\base\BaseAction.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\service\user\impl\UserServiceImpl.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [解析开始时间 D:\work\workspace\mydemo\src\main\java\com\mydemo\dao\user\UserDao.java]
[ERROR] [解析已完成时间 1ms]
[ERROR] [源文件的搜索路径: D:\work\workspace\mydemo\src\main\java,]
[ERROR] [类文件的搜索路径: D:\work\jdk_1.6u45_x64\jre\lib\rt.jar,D:\work\jdk_1.6u45_x64\jre\lib\jce.jar,D:\work\jdk_1.6u45_x64\jre\lib\ext\dnsns.jar,D:\work\jdk_1.6u45_x64\jre\lib\ext\localedata.jar,D:\work\jdk_1.6u45_x64\jre\lib\ext\sunjce_provider.jar,D:\work\jdk_1.6u45_x64\jre\lib\ext\sunmscapi.jar,D:\work\workspace\mydemo\target\classes,D:\work\m2_repository\org\springframework\spring-web\4.0.6.RELEASE\spring-web-4.0.6.RELEASE.jar,D:\work\m2_repository\org\springframework\spring-aop\4.0.6.RELEASE\spring-aop-4.0.6.RELEASE.jar,D:\work\m2_repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar,D:\work\m2_repository\org\springframework\spring-beans\4.0.6.RELEASE\spring-beans-4.0.6.RELEASE.jar,D:\work\m2_repository\org\springframework\spring-context\4.0.6.RELEASE\spring-context-4.0.6.RELEASE.jar,D:\work\m2_repository\org\springframework\spring-core\4.0.6.RELEASE\spring-core-4.0.6.RELEASE.jar,D:\work\m2_repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar,D:\work\m2_repository\org\springframework\spring-aspects\4.0.6.RELEASE\spring-aspects-4.0.6.RELEASE.jar,D:\work\m2_repository\org\aspectj\aspectjweaver\1.8.1\aspectjweaver-1.8.1.jar,D:\work\m2_repository\org\springframework\spring-webmvc\4.0.6.RELEASE\spring-webmvc-4.0.6.RELEASE.jar,D:\work\m2_repository\org\springframework\spring-expression\4.0.6.RELEASE\spring-expression-4.0.6.RELEASE.jar,D:\work\m2_repository\org\springframework\spring-context-support\4.0.6.RELEASE\spring-context-support-4.0.6.RELEASE.jar,D:\work\m2_repository\org\freemarker\freemarker\2.3.20\freemarker-2.3.20.jar,D:\work\m2_repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar,D:\work\m2_repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar,D:\work\m2_repository\log4j\log4j\1.2.14\log4j-1.2.14.jar,D:\work\m2_repository\org\mybatis\mybatis\3.2.7\mybatis-3.2.7.jar,D:\work\m2_repository\org\mybatis\mybatis-spring\1.2.2\mybatis-spring-1.2.2.jar,D:\work\m2_repository\mysql\mysql-connector-java\5.1.32\mysql-connector-java-5.1.32.jar,D:\work\m2_repository\org\springframework\spring-tx\4.0.6.RELEASE\spring-tx-4.0.6.RELEASE.jar,D:\work\m2_repository\org\springframework\spring-jdbc\4.0.6.RELEASE\spring-jdbc-4.0.6.RELEASE.jar,D:\work\m2_repository\org\apache\commons\commons-collections4\4.0\commons-collections4-4.0.jar,D:\work\m2_repository\c3p0\c3p0\0.9.1.2\c3p0-0.9.1.2.jar,D:\work\m2_repository\commons-pool\commons-pool\1.6\commons-pool-1.6.jar,D:\work\m2_repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar,D:\work\m2_repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar,D:\work\m2_repository\commons-fileupload\commons-fileupload\1.3.1\commons-fileupload-1.3.1.jar,D:\work\m2_repository\commons-io\commons-io\2.2\commons-io-2.2.jar,D:\work\m2_repository\jstl\jstl\1.2\jstl-1.2.jar,D:\work\m2_repository\commons-codec\commons-codec\1.9\commons-codec-1.9.jar,.]
[ERROR]  致命错误:在类路径或引导类路径中找不到软件包 java.lang
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

之前认为是jdk版本的问题,但是jdk的环境变量都已配置好,而且我也重装了oracle官方的jdk,仍然报这个错误!
我将项目放到另一个eclipse中编译,仍然报这个错误,因此我猜测可能是pom文件的配置问题,pom文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mydemo</groupId>
  <artifactId>mydemo</artifactId>
  <version>1.0</version>
  <packaging>war</packaging>
  <name>mydemo</name>
  <build>  
    <finalName>mydemo</finalName>  
    <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
<!-- 解决 maven编译BASE64Encoder及javax.crypto不存在的错误 -->
<compilerArguments>
              <verbose />
               <bootclasspath>${java.home}/lib/rt.jar,${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments> 
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>src/main/webapp/WEB-INF/lib/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceExcludes>**/*.js,**/*.css</warSourceExcludes>
</configuration>
</plugin>
<!-- YUI Compressor Maven压缩插件  -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.3.0</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 读取js,css文件采用UTF-8编码 -->
<encoding>UTF-8</encoding>
<jswarn>false</jswarn>
<force>false</force>
<linebreakpos>-1</linebreakpos>
<preProcessAggregates>true</preProcessAggregates>
<nosuffix>true</nosuffix>
<sourceDirectory>src/main/webapp/WEB-INF/jsp</sourceDirectory>
<includes>
<include>**/*.js</include>
<include>**/*.css</include>
</includes>
</configuration>
</plugin>
    </plugins>
  </build>  
......后面是一些jar包的配置,就不一一列举了,请各位帮忙看看到底问题出在哪里?ps:java环境变量已配置好,maven的版本是3.2.5

12 个解决方案

#1


求教关于maven编译找不到java.lang包的问题没人吗,不用maven直接把jar包放到lib下就没问题......................

#2


和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。

#3


引用 2 楼 rui888 的回复:
和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。


jdk的版本是oracle官方下的1.6.45 maven版本是3.2.5 我用的eclipse3.7.2,jdk的设置肯定没问题的,关于
<bootclasspath>${java.home}/lib/rt.jar这个配置是为了解决maven编译BASE64Encoder出现的错误 因为sun.misc.BASE64Decoder这个类在maven编译下会报错

#4


引用 3 楼 guanshanwuxia 的回复:
Quote: 引用 2 楼 rui888 的回复:

和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。


jdk的版本是oracle官方下的1.6.45 maven版本是3.2.5 我用的eclipse3.7.2,jdk的设置肯定没问题的,关于
<bootclasspath>${java.home}/lib/rt.jar这个配置是为了解决maven编译BASE64Encoder出现的错误 因为sun.misc.BASE64Decoder这个类在maven编译下会报错
 是的我知道啊。现在的错误就是允许的时候jdk 下面的的rt   ,运行的包找不到。

#5


引用 4 楼 rui888 的回复:
Quote: 引用 3 楼 guanshanwuxia 的回复:

Quote: 引用 2 楼 rui888 的回复:

和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。


jdk的版本是oracle官方下的1.6.45 maven版本是3.2.5 我用的eclipse3.7.2,jdk的设置肯定没问题的,关于
<bootclasspath>${java.home}/lib/rt.jar这个配置是为了解决maven编译BASE64Encoder出现的错误 因为sun.misc.BASE64Decoder这个类在maven编译下会报错
 是的我知道啊。现在的错误就是允许的时候jdk 下面的的rt   ,运行的包找不到。

sun.misc.BASE64Decoder这个包都能找到,却找不到java.lang这个包,他们都是在rt包下的 我完全没有办法了 求教关于maven编译找不到java.lang包的问题

#6


我也不知道。 

maven正常的话 ,<bootclasspath>${java.home}/lib/rt.jar,${java.home}/lib/jce.jar</bootclasspath>
这个不需要配置, 你先把用到BASE64Encoder的注释掉然后把 

<bootclasspath>${java.home}/lib/rt.jar,${java.home}/lib/jce.jar</bootclasspath>这个删掉看看,项目是不是能够跑的起来。

#7


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

这里写错了,逗号改为分号(window)或者 冒号(linux)

#8


哥们,你这严重误导啊

正确配置如下:
Windows(分隔符英文分号):


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


linux(分隔符英文冒号):


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

#9


楼主这个问题后来解决了吗。现在配置maven编译,遇到一样的问题

#10


jave_home不是jdk目录,是jre目录:
<java.home>D:/develop/Java/jdk1.8.0_112/jre</java.home>
问题解决了。

#11


<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
这个地方,linux和mac使用冒号,windows使用分号

#12


同样遇到这个问题,工程中需要用到jdk的包,maven引用不到!
而且,在linux系统中,java_home设置在/etc/profile中,而mvn命令设置在~/.bash_profile中,并且~/.bash_profile中没有设置java_home的环境。导致失败!

解决方案:在~/.bash_profile中设置java_home环境

#1


求教关于maven编译找不到java.lang包的问题没人吗,不用maven直接把jar包放到lib下就没问题......................

#2


和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。

#3


引用 2 楼 rui888 的回复:
和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。


jdk的版本是oracle官方下的1.6.45 maven版本是3.2.5 我用的eclipse3.7.2,jdk的设置肯定没问题的,关于
<bootclasspath>${java.home}/lib/rt.jar这个配置是为了解决maven编译BASE64Encoder出现的错误 因为sun.misc.BASE64Decoder这个类在maven编译下会报错

#4


引用 3 楼 guanshanwuxia 的回复:
Quote: 引用 2 楼 rui888 的回复:

和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。


jdk的版本是oracle官方下的1.6.45 maven版本是3.2.5 我用的eclipse3.7.2,jdk的设置肯定没问题的,关于
<bootclasspath>${java.home}/lib/rt.jar这个配置是为了解决maven编译BASE64Encoder出现的错误 因为sun.misc.BASE64Decoder这个类在maven编译下会报错
 是的我知道啊。现在的错误就是允许的时候jdk 下面的的rt   ,运行的包找不到。

#5


引用 4 楼 rui888 的回复:
Quote: 引用 3 楼 guanshanwuxia 的回复:

Quote: 引用 2 楼 rui888 的回复:

和你的  <bootclasspath>${java.home}/lib/rt.jar  这个有关系。
jdk版本与maven 版本估计有一个有问题。
其次你的项目有没有设值你运行的jdk 是你下载安装的。


jdk的版本是oracle官方下的1.6.45 maven版本是3.2.5 我用的eclipse3.7.2,jdk的设置肯定没问题的,关于
<bootclasspath>${java.home}/lib/rt.jar这个配置是为了解决maven编译BASE64Encoder出现的错误 因为sun.misc.BASE64Decoder这个类在maven编译下会报错
 是的我知道啊。现在的错误就是允许的时候jdk 下面的的rt   ,运行的包找不到。

sun.misc.BASE64Decoder这个包都能找到,却找不到java.lang这个包,他们都是在rt包下的 我完全没有办法了 求教关于maven编译找不到java.lang包的问题

#6


我也不知道。 

maven正常的话 ,<bootclasspath>${java.home}/lib/rt.jar,${java.home}/lib/jce.jar</bootclasspath>
这个不需要配置, 你先把用到BASE64Encoder的注释掉然后把 

<bootclasspath>${java.home}/lib/rt.jar,${java.home}/lib/jce.jar</bootclasspath>这个删掉看看,项目是不是能够跑的起来。

#7


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

这里写错了,逗号改为分号(window)或者 冒号(linux)

#8


哥们,你这严重误导啊

正确配置如下:
Windows(分隔符英文分号):


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


linux(分隔符英文冒号):


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

#9


楼主这个问题后来解决了吗。现在配置maven编译,遇到一样的问题

#10


jave_home不是jdk目录,是jre目录:
<java.home>D:/develop/Java/jdk1.8.0_112/jre</java.home>
问题解决了。

#11


<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
这个地方,linux和mac使用冒号,windows使用分号

#12


同样遇到这个问题,工程中需要用到jdk的包,maven引用不到!
而且,在linux系统中,java_home设置在/etc/profile中,而mvn命令设置在~/.bash_profile中,并且~/.bash_profile中没有设置java_home的环境。导致失败!

解决方案:在~/.bash_profile中设置java_home环境