欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Maven 编译使用 rt.jar

发布时间:2025/3/20 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Maven 编译使用 rt.jar 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/63251628

项目在使用mvn clean package 打包的时候出现 com.sun.image.codec.jpeg.JPEGCodec 是 Sun 的专用 API 这样的编译错误提示时,我们需要在maven编译插件中指定参数 rt.jar 文件。因为 rt.jar 是jre 中自带的 jar 包,所以才使用编译参数的方式使用。

pom.xml 的代码片段如下:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.5</version><configuration><source>${jdk.version}</source><target>${jdk.version}</target><encoding>UTF-8</encoding><compilerArguments><verbose /><bootclasspath>${JAVA_HOME}/jre/lib/rt.jar${path.separator}${JAVA_HOME}/jre/lib/jce.jar</bootclasspath></compilerArguments> </configuration></plugin><!-- 你项目中需要的其他插件本例忽略 --></plugins> </build>

主要我上面的 bootclasspath 参数指定了2个 jar 文件。
第一是我项目中需要这2个文件编译。
第二我是为了说明另外一个问题:就是当我们需要指定多个 jar 的时候,中间的分隔符,要使用maven内置变量 ${path.separator} 来指定。因为在windows下,这个分隔符应该是“分号”,而在Linux 下这个分隔符必须是“冒号”,无论我们写死哪一种都是不兼容的,所以maven为我们提供了这样的变量,可以自动根据操作系统来使用对应的分隔符。

所以maven分隔符变量 ${path.separator} 我们可能在其他配置的时候也会使用到,大家回想一下在Linux下和在Windows下配置环境变量时的分隔符就知道了。

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的Maven 编译使用 rt.jar的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。