IDEA java: package is not visible

Java IDEA About 1,337 words

错误信息

java: package jdk.nashorn.internal.runtime.regexp.joni.constants is not visible
  (package jdk.nashorn.internal.runtime.regexp.joni.constants is declared in module jdk.scripting.nashorn, which does not export it)

错误原因

Java9之后才用模块化方式分包,常用的module已经export了,但对于不常用的、下一个版本要删除的module、或者不愿意让你使用的,你却要使用。则必须人为export

解决方法

方法一

编写module-info.java文件,export需要用到的模块。

方法二

IDEA中,对于import包报错的,可以使用Alt+Enter快捷键,提示Add '' to module compiler options将指定的包加入到编译时期。

可以在Java Compiler中的Javac Options栏目下的Override compiler paramenters per-module:中看到添加的信息。

Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler

也可以在.idea文件夹下的compiler.xml文件中查看:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    <option name="USE_RELEASE_OPTION" value="false" />
    <bytecodeTargetLevel target="11" />
  </component>
  <component name="JavacSettings">
    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
      <module name="TestDemo" options="--add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.regexp.joni.constants=ALL-UNNAMED --add-exports jdk.scripting.nashorn/jdk.nashorn.tools=ALL-UNNAMED --add-exports java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED" />
    </option>
  </component>
</project>
Views: 4,292 · Posted: 2021-07-07

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh