我有以下程序:
模块信息.java
module a {
}
主.java
public class Main {
public static void main(String[] args) {
System.out.println(sun.nio.ByteBuffered.class);
}
}
该程序使用以下--add-exports
选项成功编译:
> javac --add-exports java.base/sun.nio=a module-info.java Main.java
但是,当我添加--release
参数时,它失败了:
> javac --add-exports java.base/sun.nio=a --release 9 module-info.java Main.java
error: exporting a package from system module java.base is not allowed with --release
1 error
基本上,这两个命令是等价的。那么为什么后者是被禁止的呢?
此外,由于 IDEA 将--release
参数传递给 javac,如果我的项目需要内部 API,这使得在 IDEA 中进行开发是不可能的。
我正在使用 JDK 9+178。