maven打包,Compilation failure,saaj.util不存在,类 ByteInputStream,致命错误: 在类路径或引导类路径中找不到程序包 java.lang 附deom源码

本文介绍了 maven 打包过程中遇到下面问题信息的解决

  • Compilation failure
  • 程序包com.sun.xml.internal.messaging.saaj.util不存在
  • 程序包com.sun.org.apache.xml.internal.security.exceptions不存在
  • 程序包com.sun.org.apache.xml.internal.security.utils不存在
  • 符号: 类 ByteInputStream
  • 致命错误: 在类路径或引导类路径中找不到程序包 java.lang
  • An unknown compilation problem occurred

在项目中 新增一个变量 ByteInputStream
windows 本idea中命令行 maven打包项目:mvn clean package
结果报错如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project bootclasspath_demo: Compilation failure: Compilation failure:
[ERROR] /E:/workspace_idea/bootclasspath_demo/src/main/java/com/example/bootclasspath_demo/utils/Http.java:[3,48] 程序包com.sun.xml.internal.messaging.saaj.util不存在
[ERROR] /E:/workspace_idea/bootclasspath_demo/src/main/java/com/example/bootclasspath_demo/utils/Http.java:[425,16] 找不到符号
[ERROR]   符号:   类 ByteInputStream
[ERROR]   位置: 类 com.example.bootclasspath_demo.utils.Http
[ERROR] /E:/workspace_idea/bootclasspath_demo/src/main/java/com/example/bootclasspath_demo/utils/Http.java:[456,17] 找不到符号
[ERROR]   符号:   类 ByteInputStream
[ERROR]   位置: 类 com.example.bootclasspath_demo.utils.Http
[ERROR] /E:/workspace_idea/bootclasspath_demo/src/main/java/com/example/bootclasspath_demo/utils/Http.java:[456,43] 找不到符号
[ERROR]   符号:   类 ByteInputStream
[ERROR]   位置: 类 com.example.bootclasspath_demo.utils.Http
[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

解决方法:
pom.xml 增加 bootclasspath,如下:

注意:C:/Program Files/Java/jdk1.8.0_201/jre/lib/ 是我本地jdk安装后存在的目录,每个人可能不同,不要盲目复制,请自己去找到jdk安装目录确认.
在这里插入图片描述

 <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
        <compilerArguments>
            <extdirs>libs</extdirs>
            <!-- C:/Program Files/Java/jdk1.8.0_201 是我本地安装的jdk家目录,rt.jar等jar 我在 jdk家目录下的 /jre/lib/ 目录中有发现存在,你们需要注意确认自己的实际情况,Windows分隔符英文分号,linux分隔符英文冒号  -->
            <bootclasspath>C:/Program Files/Java/jdk1.8.0_201/jre/lib/rt.jar;C:/Program Files/Java/jdk1.8.0_201/jre/lib/jce.jar;C:/Program Files/Java/jdk1.8.0_201/jre/lib/jsse.jar</bootclasspath>
        </compilerArguments>
    </configuration>
</plugin>

完整的pom.xml 中 build, 如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
                <compilerArguments>
                    <extdirs>libs</extdirs>
                    <!-- C:/Program Files/Java/jdk1.8.0_201 是我本地安装的jdk家目录,rt.jar等jar 我在 jdk家目录下的 /jre/lib/ 目录中有发现存在,你们需要注意确认自己的实际情况,Windows分隔符英文分号,linux分隔符英文冒号  -->
                    <bootclasspath>C:/Program Files/Java/jdk1.8.0_201/jre/lib/rt.jar;C:/Program Files/Java/jdk1.8.0_201/jre/lib/jce.jar;C:/Program Files/Java/jdk1.8.0_201/jre/lib/jsse.jar</bootclasspath>
                </compilerArguments>
            </configuration>
        </plugin>
    </plugins>
</build>

注:下面说说我在网上找了很多文章解决上述问题遇到的各种坑的过程
网上很多写的解决这个问题的文章都是 ${java.home}/lib/rt.jar ,至少对我当前环境来说是错的,如下:

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

我本地jdk里面有rt.jar , jce.jar , jsse.jar 的目录是 JAVA_HOME/jre/lib/rt.jar ,而网上写的都是${java.home}/lib/rt.jar 路径对不上,前者是"/jre/lib/rt.jar" 后者是 “/lib/rt.jar” 。所以根本找不到 rt.jar 等jar包

最后 附上测试的源码

链接:https://pan.baidu.com/s/1TgqiLGvMAhIadD_hjWJDFA
提取码:a4k4
注意:下载验证之前,请确认本地安装的jdk, rt.jar的jar包的位置是不是我代码里面的一致,如果不是,根据实际情况修改。

打包过程:
在这里插入图片描述
打包成功,如下
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当使用Maven进行打包时,如果出现“com.cj.commonutils不存在”的错误,通常有以下几种可能的原因: 1. 项目依赖错误:检查项目的pom.xml文件,确保已正确添加了名为com.cj.commonutils的依赖。可以通过在pom.xml文件的<dependencies>标签下添加如下代码来引入依赖: ```xml <dependency> <groupId>com.cj</groupId> <artifactId>commonutils</artifactId> <version>版本号</version> </dependency> ``` 2. 依赖库版本问题:检查依赖的版本号是否正确。如果指定版本号不存在或者不可用,可能会导致报错。可以尝试指定其他可用的版本号,或者查看该依赖库的官方文档以确认可用的版本号。 3. Maven仓库问题:如果在Maven仓库无法com.cj.commonutils库,可能是因为该库尚未发布到公共仓库或者您的Maven设置没有正确地连接到所需的仓库。您可以尝试执行以下命令来更新Maven仓库并重新缓存依赖项: ```shell mvn clean install -U ``` 4. 本地库缺失:如果您尝试使用本地库进行构建,并且在本地仓库不到com.cj.commonutils库的jar文件,可能是由于本地库的路径不正确或本地库未正确安装导致。您可以尝试手动将com.cj.commonutils库的jar文件复制到Maven本地库的正确路径下。 总之,详细检查和排除上述可能原因,并确保正确配置依赖、版本和仓库信息,可以解决“com.cj.commonutils不存在”的Maven打包错误
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值