程序包com.sun.istack.internal不存在

程序包com.sun.istack.internal不存在

在这里插入图片描述
形成原因:
是因为代码里使用了 sun 私有包中 @NotNull注解导致,只要引入相应的sun私有包就行了!

解决方案:
在pom.xml之间添加

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <compilerArgs>
                        <!-- 过期的方法的警告-->
                        <arg>-Xlint:deprecation</arg>
                    </compilerArgs>
                    <compilerArguments>
                        <!-- 是否输出所有的编译信息(包括类的加载等)-->
                        <!--<verbose />-->
                        <!-- 解决maven命令编译报错,因为rt.jar 和jce.jar在jre的lib下面,不在jdk的lib下面,
                        导致maven找不到(java7以后会出现这个问题),将这2个jar包拷贝到jdk的lib下面估计也好使-->
                        <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
                    </compilerArguments>
                </configuration>
            </plugin>

修改完之后,本地编译没有问题,在linux环境部署的时候报错:
Unable to find package java.lang in classpath or bootclasspath
原因:原因是在Windows下是分号;,在linux下是冒号:
解决方法:使用maven自带的变量${path.separator}路径分隔符
修改完之后的代码:

 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.5.1</version>
      <configuration>
          <compilerArgs>
              <!-- 过期的方法的警告-->
              <arg>-Xlint:deprecation</arg>
          </compilerArgs>
          <compilerArguments>
              <!-- 是否输出所有的编译信息(包括类的加载等)-->
              <!--<verbose />-->
              <!-- 解决maven命令编译报错,因为rt.jar 和jce.jar在jre的lib下面,不在jdk的lib下面,
              导致maven找不到(java7以后会出现这个问题),将这2个jar包拷贝到jdk的lib下面估计也好使-->
              <bootclasspath>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</bootclasspath>
          </compilerArguments>
      </configuration>
  </plugin>
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值