java-9相关内容

我需要Spring 5 for Java 9吗?

Spring 5被提升为“支持JDK 9”,同时Spring 4.3.13的文档声明它支持 Java 8(以及6和7) 。 这是否意味着我需要升级到Spring 5才能 在JRE 9中运行我的应用程序? 使用JDK 9编译我的应用程序? 解决方案 Spring On 官方Spring博客,他们宣布Spring 4.2将支持Java 7和8(它在4.3中没有变化),他们也 ..
发布时间:2018-12-12 18:31:44 Java开发

如果元素是重复的,为什么Set.of()会抛出IllegalArgumentException?

在Java 9中,在Set接口上引入了新的静态工厂方法,称为of(),它接受多个元素,甚至是一个元素数组。 I想要将列表转换为集合以删除集合中的任何重复条目,这可以使用以下方式完成(在Java 9之前): 组<字符串> set = new HashSet(); set.addAll(list); 但我认为使用这种新的Java 9静态工厂方法会很酷: ..
发布时间:2018-12-12 18:14:15 Java开发

我该如何命名我的Java 9模块?

假设我有一个带 groupId = org.abc 和 artifactId = myLibrary 的库。模块名称的推荐名称是什么: myLibrary 或 org.abc.myLibrary ?是否有任何命名方案的官方指南? 解决方案 有一段时间对你的问题有两种不同的意见,但在开发过程中在模块系统中,社区采用反向DNS方法。 唯一模块名称 - 反向DNS 这里假设模块名称应 ..
发布时间:2018-12-12 18:13:47 Java开发

Java 9:什么是集合工厂方法?

Java 9的到来为Java的Collections API带来了许多新功能,其中一个是集合工厂方法。 它们是什么以及如何正确实现它们? 解决方案 注1:为防止使用原始类型,我选择提供我在下面提到的每个类的泛型类型,使用 E ,表示 Collection 的元素。 注2:这个答案可能会有所变化;如果发生拼写错误,请编辑此帖子。 什么是收集工厂方法? Java ..
发布时间:2018-12-12 18:06:19 Java开发

我应该在Java 9中使用哪个模块来使用JPA?

我正在使用需要JPA( javax.persistence。* 类)的项目测试Java 9。当我添加 module-info.java 并声明我的模块时, javax.persistece 包下的所有类都变得不可用。 我搜索了很多,但我找不到要求在Java 9模块项目中使用JPA的模块。 更新 正如Alan所说,我跑了 $ jar - -describe-module -- ..
发布时间:2018-12-12 00:05:23 Java开发

特定面板的jdk 9高dpi禁用

使用JDK 9,我的swing应用程序在Windows上运行良好,具有4k highdpi和 正常1080p正常dpi。标签,组合框等都看起来不错,并且在4k屏幕上放大了 。 但我的JPanel也是如此,我在那里绘制自定义图像。我可以禁用 这个JPanel的缩放比例来自己处理绘图吗?我使用 apache-commons bicubic插值来绘制更高的 未缩放分辨率的更多细节,但是由于它 ..
发布时间:2018-12-12 00:03:23 Java开发

需求和要求静态的模块声明之间有什么区别

模块声明中 需要 和 需要静态 模块语句之间的区别是什么? 例如: 模块栏{ 需要java.compiler; 需要静态java.base; } 解决方案 A requires 子句表示在编译和运行时需要所需的模块。因此,当模块系统在模块解析期间遇到这样的条款时(处理模块描述符和依赖关系的阶段)它搜索可观察模块的范围(JDK中的模块和模块路径上的模块),如果找不 ..
发布时间:2018-12-11 23:20:47 Java开发

是否默认启用G1垃圾收集器的String Deduplication功能?

用Java实现的 JEP 192:G1中的字符串重复数据删除 8 Update 20添加了新的String重复数据删除功能: 通过增强G1垃圾收集器来减少Java堆实时数据集,以便重复实例字符串是自动连续重复数据删除。 JEP页面提到命令行选项 UseStringDeduplication(bool )允许启用或禁用重复数据删除功能。但是JEP页面并没有指出默认值。 ➠与Java ..
发布时间:2018-12-11 23:14:30 Java开发

为什么它会锁定lib / modules?

当我启动任何第三方应用程序时,例如记事本(但你可以采取其他任何东西),从Java 9应用程序,然后退出Java应用程序: import java.io 。*; 公共类LaunchNotepad { public static void main(String [] args)抛出IOException { Runtime.getRuntime()。exec(new String ..
发布时间:2018-12-11 22:43:05 Java开发

Java 9,Set.of()和Map.of()varargs重载

我正在研究不可变集合的工厂方法。 我看到 Set.of()方法有10个varargs重载(同样适用于 Map.of())。我真的不明白为什么会这么多。最后,无论如何都会调用函数 ImmutableCollections.SetN(元素)。 在文档中我发现这个: 虽然这会在API中引入一些混乱,但它避免了varargs引起的数组分配,初始化和垃圾收集开销调用。 杂乱的确是否值 ..
发布时间:2018-12-11 22:42:02 Java开发

我可以从Java模块中排除导出的包吗?

模块jta和java.sql导出包javax.transaction.xa到模块dom4j As你可以看到,两个模块 jta 和 java.sql 导出相同的包, javax。 transaction.xa 。但是, jta 中的包具有我需要的类,这些类在 java.sql 中不存在。我根本不需要 java.sql 模块,但我需要 java.sql.SQLException 。 是否可 ..
发布时间:2018-12-11 22:17:57 Java开发

Java 9中的JFrame扩展

在左侧的Java 9u4和Windows 7右侧的8u144下运行的代码完全相同。 Java 9似乎使窗口更大。造成这种情况的原因是什么 - JEP 263?如何禁用它? public class SimpleFrame { public static void main(String [] args){ JFrame frame = new JFrame(); frame. ..
发布时间:2018-12-11 00:04:03 Java开发

在Java 9中加载类和资源

我正在阅读有关InfoQ的这篇文章引用Reinhold: 开发人员仍然可以使用Java 9中的Java类路径为Java 运行时搜索类和资源文件。只需使用 Java 9的模块,开发人员就不再需要类路径了。 所以现在我的问题是:什么是正确的Java 9方式来完成上面列出的任务?你如何动态加载,例如一个图像(没有摆弄相对路径)? 更有趣的是,如何检查一个班级是否可用并动态做出决定( ..
发布时间:2018-12-10 23:45:44 Java开发

Java 9编译器中的--release标志是什么?

Java 9的 javac 有一个新标志 - 发布: > javac --help ... --release 编译特定的VM版本。支持的目标:6,7,8,9 与有什么不同? -source 和 -target 标志?它只是 -source X -target X 的快捷方式? 解决方案 不完全是。 JEP 247 ..
发布时间:2018-12-10 23:44:13 Java开发

什么是“检测到所需的基于文件名的自动模块”。警告意味着?

在我的多模块项目中,我仅为少数模块创建了 module-info.java 。在编译期间使用 maven-compiler-plugin:3.7.0 我收到下一个警告: [警告] *检测到必需的基于文件名的自动模块。请不要 将此项目发布到公共工件库! * 这是什么意思?是因为我只有几个带 module-info.java 的模块,而不是整个项目? 解决方案 自动模块回顾 ..
发布时间:2018-12-10 23:19:09 Java开发

ImmutableCollections SetN实现细节

我很难理解java-9中的实现细节 ImmutableCollections.SetN ;具体为什么需要增加内部数组两次。 假设你这样做: Set.of(1,2,3,4)// 4个元素,但内部数组为8 更确切地说,我完全理解为什么这样做(双重扩展),如果是 HashMap - 你从来没有(几乎)想要 load_factor 是一个。值!= 1 可以改善搜索时间, ..
发布时间:2018-12-10 22:57:32 Java开发

Java 9是否包含Graal?

我正在阅读 JEP 317 。它说Graal(一个新的基于Java的实验性JIT编译器)将成为JDK 10的一部分,但后来它说已经可以在JDK 9中使用了。那么,JEP 317的重点是什么呢? Java 9是否包含Graal? 解决方案 从我的一个备忘录中,在linux-x64上(不包括)框))在JDK 9上使用Graal,您可以使用以下命令启用它: -XX:+ UnlockExp ..
发布时间:2018-12-10 22:54:44 Java开发

如何解压缩文件jre-9 / lib / modules?

在 JRE-9 / lib 目录中(至少在Windows上),有一个名为 modules 的新文件其大小约为107 MB。是否有可能提取该文件或列出其中的java模块? 我可以看到一个名为 jmod的新工具可在 jdk-9 / bin / jmod.exe 中找到,但这是用于读取 .jmod 文件位于 jdk-9 / jmods ,它无法读取文件 modules 。 解决方案 mod ..
发布时间:2018-12-10 22:20:12 Java开发