也有未提及的可能性。如果您从导入库com.sun.*
。这也会导致此问题。
程序在ide中运行时起作用,因为这些类com.sun.*
都在jre/lib
目录中,因此在运行时将被加载。但是当您运行时mvn package
,由于自Java 1.6以来oracle的限制,将无法访问这些库(这些库已在某种程度上被弃用)。要解决此问题,您可以添加
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>C:/Program Files/Java/jdk1.8.0_161/jre/lib/rt.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
记得用自己的路径替换cootclasspath rt.jar
您可以搜索Access restriction: The type XXX is not accessible due to restriction on required library
更多详细信息。