Java 9 将会从默认类路径中去除 CORBA

作为模块系统的一部分正在进行的迁移,CORBA和其他的Java EE模块在Java 9更新时将不会包含在默认的类路径中。这些模块依然能够获取,但是开发者们需要使用特定的命令行指令才能够使用它们。这个变化只会影响到非模块化的、以Java 9为目标系统的应用,因为模块化的应用已经需要详细指出它们依赖的模块。

正如“模块系统的情形” 中解释的那样,模块化在Java 9中的附加功能不会强制开发者直接使用它们,反而,Java 9中提供了一定数量的向后兼容选项。其中一个允许在Java 9中完成传统的、非模块化的代码。其中为了它能够正常工作,非模块化的代码需要被添加至编译器,作为一个特殊的模块,叫做“未命名模块”,它默认显示了所 有包含的包并且没有详述的依赖。

不幸的是,未命名模块没有任何明确的依赖关系,这会给模块分解带来很大的挑战。在一个模块化的Java应用中,正在被编译的模块会有一个明确的所需 要的依赖关系清单。编译器可以使用这些信息,伴随着依赖关系中的依赖,来计算出一个图表,其中包括所有被编译模块直接或间接需要的所有模块的传递闭包。而 未命名模块没有标明任何依赖,所以它不能被用于计算模块图表的根节点。

为了修正这个问题,Java 9将会使用一些默认值作为将代码编译入未命名模块的根模块。在最新的修改中,这个默认根模块已经从java.se.ee迁移到java.se,这意味着所有的Java EE扩展现在都默认不能使用了。这个修改会帮助预防包含它们自己的Java EE包实现的应用服务器中的冲突。

那些想要迁移至Java 9但是还没有做好重写他们应用每个模块系统的准备的人可以仍然将这些依赖添加回类路径,通过在编译或运行应用时使用命令行指令“-addmods ”。

文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-09-21 16:15:32

Java 9 将会从默认类路径中去除 CORBA的相关文章

无效的bean定义与类路径中定义的名字“数据源”资源[spring-mybatis]

问题描述 无效的bean定义与类路径中定义的名字"数据源"资源[spring-mybatis] 错误如下: Invalid bean definition with name 'dataSource' defined in class path resource [spring-mybatis.xml]: Could not resolve placeholder 'driver' in string value "${driver}"; nested except

管理Java类路径(UNIX和Mac OS X)

类路径可以连接 Java 运行库和文件系统.它定义编译器和解释器应该在何处查找要加载的 .class 文件.它的基本思想是:文件系统的层次结构反映了 Java 包的层次结构,而类路径则定义了文件系统中的哪个目录可以作为 Java 包层次结构的根. 遗憾的是,通常文件系统非常复杂并依赖于平台,而且和 Java 包也不能很好地匹配.这样一来,不论是新用户还是资深 Java 程序员都深感类路径的棘手.没错,它的确不是 Java 平台好的一面,它让您到了下班的时候还在忙于调试一个顽固的小问题. 当然采用

管理Java类路径(Windows)

类路径可以连接 Java 运行库和文件系统.它定义编译器和解释器应该在何处查找要加载的 .class 文件.它的基本思想是:文件系统的层次结构反映了 Java 包的层次结构,而类路径则定义了文件系统中的哪个目录可以作为 Java 包层次结构的根. 遗憾的是,通常文件系统非常复杂并依赖于平台,而且和 Java 包也不能很好地匹配.尤其是在 Windows 环境中更是如此.Java 是一些 Unix 高手设计的,因而从很多方面来说,这也就意味着它无法很好地与 Windows 约定同步.这样一来,不论

设置类路径

结构 可通过对JDK工具使用-classpath选项(首选方法)或设置CLASSPATH环境变量来设置类路径. C:>jdkTool-classpathpath1;path2... C:>setCLASSPATH=path1;path2... 每个path以文件名或目录结尾,该文件名或目录取决于将类路径设置成什么: 对于包含.class文件的.zip或.jar文件,路径以.zip或.jar文件名结尾. 对于未命名包中的.class文件,路径以包含.class文件的目录结尾. 对于已命名包中的.

Java中获取类路径classpath的简单方法(推荐)_java

如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo

java路径中的空格问题(转)

java路径中的空格问题 1. URLTest.class.getResource("/").getPath(); URLTest.class.getResource("/").getFile(); URLTest.class.getClassLoader().getResource("").getPath(); Thread.currentThread().getContextClassLoader().getResource("&q

android APK应用安装过程以及默认安装路径[转]

一:安装过程 APK是类似Symbian Sis或Sisx的文件格式.通过将APK文件直接传到Android模拟器或Android手机中执行即可安装. Android应用安装有如下四种方式 1.        系统应用安装――开机时完成,没有安装界面 2.        网络下载应用安装――通过market应用完成,没有安装界面 3.        ADB工具安装――没有安装界面. 4.        第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由packageinstaller

java spring注入bean生成一个类实例,请问这个类实例是单体类吗?全局唯一吗。

问题描述 java spring注入bean生成一个类实例,请问这个类实例是单体类吗?全局唯一吗. 小弟刚从C++转JAVA不久,遇到这样一个问题,求高人帮忙解答. 我现在大体理解了注入的实现方式,例如在一个标注有@configuration 的类里面,如果一个方法 上面有@bean,那么这个方法的返回的类对象会被实例化. 我的疑问是这样的,这个实例化的对象是全局唯一的吗,或者说 是一个单体类吗? 因为我要在我的程序里不同地方使用调用这个bean的方法,我担心如果是单体类的话, 是否存在数据同步

flex-【HELP】JAVA demo运行找不到类

问题描述 [HELP]JAVA demo运行找不到类 20C 出现如下错误,对应的调用代码如下User user=(User)amf3input.readObject();//AMF3读取flex发送过来的as对象 ,请问下是不是运行时候还差哪些参数设置? 我进一步定位问题发现应该是FLex这边定义的RemoteClass找不到.flex客户端我是放在其他目录,java服务器是通过cmd开启的,是否是路径的问题? Flex端 package vo { [Binable] [RemoteClass