Java 9中--add-exports和--add-opens有什么区别?
在Java 9(jdk-9 + 170)默认情况下不允许应用程序查看来自JDK的所有类,而不像以前的所有Java版本。需要使用--add-exports和--add-opens配置参数,例如:
--add-opens java.base/jdk.internal.loader=ALL-UNNAMED
--add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED
--add-opens java.base/jdk.internal.misc=ALL-UNNAMED
那么,Java 9中--add-exports和--add-opens有什么区别?
使用--add-exports包被导出,意味着所有的公共类型和成员都可以在编译和运行时访问。
随着--add-opens打开包,这意味着其中的所有类型和成员(不仅是公共的!)在运行时可以访问。
所以在运行时的主要区别是--add-opens允许“深度反射”,意思是非公共成员的访问。您通常可以通过拨打setAccessible(true)的反射代码来识别此类访问。
参考文档:http://cn.voidcc.com/question/p-rfygdwxb-bhm.html
Java 9中--add-exports和--add-opens有什么区别?相关推荐
- java getmethods_java中Class.getMethods()和Class.getDeclaredMethods()方法的区别
在java中,可以根据Class类的对象,知道某个类(接口)的一些属性(成员 ,方法,注释,注解)等.由于最近的工作中用到了这些,其中需要在代码中格局反射知道某些类的方法,查看文档的时候,看到了get ...
- Java线程中,Blocked,Wait,以及TIMED_WAIT的区别
根据jdk1.6的api,java的Thread类,定义了六个状态: 线程状态.线程可以处于下列状态之一: NEW 至今尚未启动的线程处于这种状态. RUNNABLE 正在 Java 虚拟机中执行的线 ...
- Java spark中的各种范型接口Function的区别(持续更新中)
表格来自[2] Class Function Type Function<T, R> T => R DoubleFunction<T> T => Double Pa ...
- scala java 区别_Scala(和Java)中的类和类型之间有什么区别?
当您说"类型"时,我将假设您主要是指静态类型. 但是我将在短期内讨论动态类型. 静态类型是可以被静态证明的程序一部分的属性(静态表示"不运行它"). 在静态类型 ...
- 【Java】中int 和 Integer 与 new Integer() 的区别,int 可以使用 == 来对比两个变量是否相等,而 Integer 一定要使用 equals 来比较两个变量值是否相等
目录 一.int 和 Integer 的区别 二. Integer.new Integer() 和 int 的比较 三.总结 四.更多详看: 一.int 和 Integer 的区别 两者的区别主要体现 ...
- java filewriter_java中Write FileWriter()和FileWriter(new file)的区别
展开全部 没什么区别,只是不同的重载而已,最终都是调用32313133353236313431303231363533e58685e5aeb931333365663562的OutputStreamWr ...
- java Arrarlist中的add(int index,Object ojb)
java Arrarlist中的add(int index,Object ojb) 怎么自己用代码实现这个功能啊? 求讲解 askdjklas3 | 浏览 11337 次 2012-02-29 19 ...
- Java栈中add()和push()的不同之处
Java栈中add()和push()的不同之处 在日常使用中发现往栈中添加元素既可以用add(),也可以用push(). 需要注意的是栈本身没有add()方法,add()方法是来自栈继承的类 Vect ...
- java Queue中 add/offer,element/peek,remove/poll区别
java Queue中 add/offer,element/peek,remove/poll中的三个方法均为重复的方法,在选择使用时不免有所疑惑,这里简单区别一下: 1.add()和offer()区别 ...
- eclipse中,add jars和add library的区别
Add Jars ----添加Jar包,是指本Eclipse当前包含的工程中,在工程列表下选取即可 Add External Jars---添加外部的Jar,是指外部的,需要用文件管理器,在电脑硬盘上 ...
最新文章
- 如何成为Android开发高手
- 适合初学者的数据结构_数据结构101:图-初学者的直观介绍
- java将0到9随机输出_生成0到9之间的随机整数
- (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
- Java通过JDBC连接SQL Server2017数据库
- 变量 常量 Python变量内存管理 赋值方式 注释
- JavaScript 学习中的帮助记忆(日积月累)
- 测试集的构成比例对网络分类性能的影响cp
- 服务端如何识别是selenium在访问以及解决方案参考一
- 上海工程技术大学计算机通信与网络,上海工程技术大学
- html定位的所有属性,HTML CSS定位属性详解 嘿嘿嘿
- 一篇博客读懂设计模式之---委派模式
- ARM Linux.2.6.34内核移植
- 快速排序 python 4种写法_[算法] 关于快速排序的四种写法
- 前端框架这么火,还有必要学好原生 JavaScript 吗?
- 华为机试HJ23:删除字符串中出现次数最少的字符
- BestCoder Round #56/hdu5463 Clarke and minecraft 水题
- tomcat运行的本质
- Julia: 如何读出csv文件中的中文字符?
- 饥荒服务器物品指令,流年饥荒控制台指令全+物品大全+服务器管理命令大全.docx...
热门文章
- 从固定管线到可编程管线:十段代码入门OpenGL
- ROS-Control专题:PR2的六个概念【3】
- python 123 io网站答题如果最小化会有提示吗_爬虫进阶教程:百万英雄答题辅助系统...
- 供应链管理:理解供应链管理
- 使用paypal的手续费
- 微信公众号后台接收关注事件
- autorun的使用
- 使用天乐软件加密狗(JDProtect)保护您的软件,防止程序被跟踪/逆向/反编译/破解
- android opencv 银行卡识别,【opencv小应用】银行卡号识别(一)
- 天梯赛 L2 列车调度