java-9相关内容

Eclipse使用Java 9显示空错误消息

我已经安装了Java 9插件。我的项目没有改变,但是当我尝试运行时,我得到了这个: 如何将本地库添加到“java.library 。路径"使用Eclipse启动(而不是覆盖它)以获取更多详细信息和特定于平台的解决方案。 && 确保包含jdk-9早期访问构建的路径,理想情况下该路径应该是基于Java9的插件所必需的。 ,日志读取 !ENTRY org.eclipse.ui ..
发布时间:2018-11-29 19:50:08 Java开发

什么是非法反思访问

关于Java 9中的非法反射访问存在很多问题。 现在我找不到因为所有谷歌都在努力工作围绕错误消息,实际上是非法反射访问。 所以我的问题很简单: 什么定义了非法反射访问以及什么情况会触发警告? 我已经收集到它与Java 9中引入的封装原则有关,但是它是如何挂在一起的,是什么触发警告在什么情况下我找不到解释。 解决方案 除了了解模块及其各自包之间的访问。我相信它的关键在 ..
发布时间:2018-11-29 19:32:45 Java开发

列出应用程序启动期间解析的模块

如何在启动应用程序时了解已解析的模块列表,以便确定从根模块可以访问的所有服务提供程序。 解决方案 模块分辨率 模块解析是一个两步过程。 第一步递归枚举一组根模块的'requires'指令。 如果所有枚举模块都是可观察的,那么第二步计算它们的可读性图。可读性图表体现了模块之间的相互依赖关系,这反过来又控制了跨模块边界的访问。 可以使用 java 工具文档通过VM参数: ..
发布时间:2018-11-29 19:30:28 Java开发

有没有办法在使用maven-jlink-plugin时添加maven依赖项?

我正在使用 Github项目暴露于Java 9中的新模块化功能。我想为项目添加依赖项,并能够构建本机映像。但是,当我尝试向pom.xml添加新的依赖项,并将requires语句添加到module-info.java时,我从maven-jlink-plugin中收到以下错误: 错误:找不到joda.time模块的module-info.class 我正在尝试使用它作为概念证明 ..
发布时间:2018-11-29 19:19:31 Java开发

如何在Java9模块中使用第三方库?

我有一些java9模块,它使用的第三方库不是Java9模块,只是一个简单的实用程序jar。 然而,编译器抱怨它不能从我的实用程序中找到一个包。 我应该怎么做 module-info.java 来启用我的用法第三方库? 解决方案 您可以将库用作自动模块。自动模块是没有模块描述符的模块(即 module-info.class )。但是你应该使用什么名称来引用这个模块?自动模块的名称 ..
发布时间:2018-11-29 19:04:55 Java开发

什么是自动模块?

在stackoverflow上多次提到自动模块,但我找不到自动模块的完整,简洁和自给自足的定义。 那么,什么是一个自动模块?它是否导出所有包裹?它打开所有包裹吗?它是否读取了所有其他模块? 解决方案 我首先回答你的实际问题(“什么是自动模块?”),但是我还解释了的 。很难理解为什么自动模块的行为方式与没有这些信息的情况一样。 什么是自动模块? 模块系统从模块路径上找到的每 ..
发布时间:2018-11-29 19:03:41 Java开发

从外部模块访问资源文件

到非模块化java为止,你只需将文件放在 src / main / java / resources 中,确保它在classpath中,然后用 file = getClass()。getClassLoader()。getResourceAsStream(“myfilename”);从$ class p>现在有了模块,情节会变粗。 我的项目设置如下: module ..
发布时间:2018-11-29 19:03:02 Java开发

java 9中javax.activation包的替代品是什么?

似乎 javax.activation 在Java 9中不推荐使用。 Oracle迁移指南建议使用 - add-modules java JVM启动期间的.activation 选项。 但是,我想避免这种情况并替换 javax.activation 包的类,因为它已弃用,并且将来的java版本中删除。我想, javax.activation 应该有某种替代方案。如果有可用的,它是什么? ..
发布时间:2018-11-28 21:30:28 Java开发

Java 9及更高版本中的Java Web Start支持

我对Java Web Start的状态感到困惑。 在Oracle的支持路线图上,我们可以阅读: 支持部署技术 Web部署技术由Java插件和Web Start技术组成,具有更短的支持生命周期。对于通过Java SE 8的主要版本,Oracle为这些技术提供了五(5)年的Premier支持。扩展支持不适用于部署堆栈,并且不可用于Java SE 9以外的支持。有关详细信息,请参阅Orac ..
发布时间:2018-11-28 21:09:05 Java开发

如何在Java 9中实现String连接?

如 JEP 280 所述: 更改由 javac 生成的静态 String -concatenation字节码序列以使用 invokedynamic 调用JDK库函数。这将允许将来优化 String 连接,而无需进一步更改 javac 所包含的字节码。 这里我想了解 invokedynamic 调用的用法以及字节码串联与 invokedynamic ? 解决方案 “旧”方式输出一 ..
发布时间:2018-11-28 20:40:16 Java开发

是否可以在javac(JDK 9)中混合使用--class-path和--module-path?

当我编译依赖于我之前编译的其他模块的模块时,我必须指定 - module-path 选项。这使我依赖的模块可见。 但与此同时我还想让一些非模块化的Jar文件可见。但是,如果不使它们成为自动模块,只需在旁边指定 - class-path some.jar - module-path ,然后 javac 似乎忽略了claspath并抛出“package yyy n ..
发布时间:2018-11-28 00:55:49 Java开发

Java 9:Eclipse中无法访问模块java.xml.bind

我将 Java 8 中的maven项目迁移到 Java 9 项目,而没有任何构建工具 Eclipse OxyGen 1a 。 所以我的 module-info.java 如下所示: 但java.xml.bind无法访问,尽管它位于我的模块路径中: 那么这里有什么问题? 解决方案 编译未命名的模块时,默认情况下无法访问 java.xml.bind ,但在模块化项目中(如在这 ..
发布时间:2018-11-27 23:53:21 Java开发

Tomcat 7.0.73不适用于Java 9

由于catalina.sh中默认的“java.endorsed.dirs”选项,因此无法使用java 9启动基于tomcat的应用程序。 -Djava.endorsed.dirs = / usr / local / share / tomcat / endorsed不受支持。通过可升级模块的概念,将支持模块化形式的认可标准和独立API。 错误:无法创建Java虚拟机。 错误:发生致命异 ..
发布时间:2018-11-27 21:40:38 Java开发

可选orElse Java中的可选项

我一直在使用新的可选类型在Java 8中,我遇到了一个似乎是功能上不支持的常见操作:“orElseOptional” 考虑以下模式: 可选 resultFromServiceA = serviceA(args); if(resultFromServiceA.isPresent)返回结果; else { 可选 resultFromServiceB = servic ..
发布时间:2018-11-27 13:21:34 Java开发

包与Java 9中的自动模块冲突

随着Java 9的出现,我认为将我的一些项目移植到Java 9是一个很好的学习练习。在我的一个项目中,我有 rxjava 和 rxjavafx 依赖项{ compile'io.reactivex:rxjava:1.2.6' 编译'io.reactivex:rxjavafx:1.0.0' ... } 我想将此项目创建为命名模块。为此,我需要创建一个 module-inf ..
发布时间:2018-11-27 11:25:58 Java开发