java-9相关内容
我已经安装了Java 9插件。我的项目没有改变,但是当我尝试运行时,我得到了这个: 如何将本地库添加到“java.library 。路径"使用Eclipse启动(而不是覆盖它)以获取更多详细信息和特定于平台的解决方案。 && 确保包含jdk-9早期访问构建的路径,理想情况下该路径应该是基于Java9的插件所必需的。 ,日志读取 !ENTRY org.eclipse.ui
..
关于Java 9中的非法反射访问存在很多问题。 现在我找不到因为所有谷歌都在努力工作围绕错误消息,实际上是非法反射访问。 所以我的问题很简单: 什么定义了非法反射访问以及什么情况会触发警告? 我已经收集到它与Java 9中引入的封装原则有关,但是它是如何挂在一起的,是什么触发警告在什么情况下我找不到解释。 解决方案 除了了解模块及其各自包之间的访问。我相信它的关键在
..
如何在启动应用程序时了解已解析的模块列表,以便确定从根模块可以访问的所有服务提供程序。 解决方案 模块分辨率 模块解析是一个两步过程。 第一步递归枚举一组根模块的'requires'指令。 如果所有枚举模块都是可观察的,那么第二步计算它们的可读性图。可读性图表体现了模块之间的相互依赖关系,这反过来又控制了跨模块边界的访问。 可以使用 java 工具文档通过VM参数:
..
我正在使用 Github项目暴露于Java 9中的新模块化功能。我想为项目添加依赖项,并能够构建本机映像。但是,当我尝试向pom.xml添加新的依赖项,并将requires语句添加到module-info.java时,我从maven-jlink-plugin中收到以下错误: 错误:找不到joda.time模块的module-info.class 我正在尝试使用它作为概念证明
..
我试图通过spring-boot来理解java 9中的新模块化,所以我想运行一些简单的应用程序,例如:
..
我有一些java9模块,它使用的第三方库不是Java9模块,只是一个简单的实用程序jar。 然而,编译器抱怨它不能从我的实用程序中找到一个包。 我应该怎么做 module-info.java 来启用我的用法第三方库? 解决方案 您可以将库用作自动模块。自动模块是没有模块描述符的模块(即 module-info.class )。但是你应该使用什么名称来引用这个模块?自动模块的名称
..
在stackoverflow上多次提到自动模块,但我找不到自动模块的完整,简洁和自给自足的定义。 那么,什么是一个自动模块?它是否导出所有包裹?它打开所有包裹吗?它是否读取了所有其他模块? 解决方案 我首先回答你的实际问题(“什么是自动模块?”),但是我还解释了的 。很难理解为什么自动模块的行为方式与没有这些信息的情况一样。 什么是自动模块? 模块系统从模块路径上找到的每
..
到非模块化java为止,你只需将文件放在 src / main / java / resources 中,确保它在classpath中,然后用 file = getClass()。getClassLoader()。getResourceAsStream(“myfilename”);从$ class p>现在有了模块,情节会变粗。 我的项目设置如下: module
..
似乎 javax.activation 在Java 9中不推荐使用。 Oracle迁移指南建议使用 - add-modules java JVM启动期间的.activation 选项。 但是,我想避免这种情况并替换 javax.activation 包的类,因为它已弃用,并且将来的java版本中删除。我想, javax.activation 应该有某种替代方案。如果有可用的,它是什么?
..
我对Java Web Start的状态感到困惑。 在Oracle的支持路线图上,我们可以阅读: 支持部署技术 Web部署技术由Java插件和Web Start技术组成,具有更短的支持生命周期。对于通过Java SE 8的主要版本,Oracle为这些技术提供了五(5)年的Premier支持。扩展支持不适用于部署堆栈,并且不可用于Java SE 9以外的支持。有关详细信息,请参阅Orac
..
如 JEP 280 所述: 更改由 javac 生成的静态 String -concatenation字节码序列以使用 invokedynamic 调用JDK库函数。这将允许将来优化 String 连接,而无需进一步更改 javac 所包含的字节码。 这里我想了解 invokedynamic 调用的用法以及字节码串联与 invokedynamic ? 解决方案 “旧”方式输出一
..
当我编译依赖于我之前编译的其他模块的模块时,我必须指定 - module-path 选项。这使我依赖的模块可见。 但与此同时我还想让一些非模块化的Jar文件可见。但是,如果不使它们成为自动模块,只需在旁边指定 - class-path some.jar - module-path ,然后 javac 似乎忽略了claspath并抛出“package yyy n
..
我将 Java 8 中的maven项目迁移到 Java 9 项目,而没有任何构建工具 Eclipse OxyGen 1a 。 所以我的 module-info.java 如下所示: 但java.xml.bind无法访问,尽管它位于我的模块路径中: 那么这里有什么问题? 解决方案 编译未命名的模块时,默认情况下无法访问 java.xml.bind ,但在模块化项目中(如在这
..
由于catalina.sh中默认的“java.endorsed.dirs”选项,因此无法使用java 9启动基于tomcat的应用程序。 -Djava.endorsed.dirs = / usr / local / share / tomcat / endorsed不受支持。通过可升级模块的概念,将支持模块化形式的认可标准和独立API。 错误:无法创建Java虚拟机。 错误:发生致命异
..
我一直在使用新的可选类型在Java 8中,我遇到了一个似乎是功能上不支持的常见操作:“orElseOptional” 考虑以下模式: 可选 resultFromServiceA = serviceA(args); if(resultFromServiceA.isPresent)返回结果; else { 可选 resultFromServiceB = servic
..
我正在使用maven和 java的9 。我在 pom.xml 文件中添加了: maven-compiler-plugin $ {maven-compiler-plugin.version} $ {java.ver
..
我正在尝试运行DMelt程序( http://jwork.org/dmelt/ )程序使用Java9(JDK9),它给我错误,如: 警告:发生了非法的反射访问操作 警告:org.python.core.PySystemState(文件:/dmelt/jehep/lib/jython/jython.jar)非法反射访问方法java.io.Console.encoding() 警告:请考虑报告这
..
随着Java 9的出现,我认为将我的一些项目移植到Java 9是一个很好的学习练习。在我的一个项目中,我有 rxjava 和 rxjavafx 依赖项{ compile'io.reactivex:rxjava:1.2.6' 编译'io.reactivex:rxjavafx:1.0.0' ... } 我想将此项目创建为命名模块。为此,我需要创建一个 module-inf
..
Java 9带有便利工厂方法,用于创建不可变列表。最后创建列表非常简单: List list = List.of(“foo”,“bar”); 但此方法有12个重载版本,11个包含0到10个元素,另一个包含var args。 static列表与LT E - 代替; (E ...元素) 与 Set 和 Map 。
..
我的项目依赖于Netty Epoll传输。这是依赖: io.netty netty-transport-native-epoll $ {netty.version} $ {epol
..