java-9相关内容
我刚刚尝试使用 Java 9 运行我的服务器并收到下一个警告: 警告:发生了非法反射访问操作警告:io.netty.util.internal.ReflectionUtil(文件:/home/azureuser/server-0.28.0-SNAPSHOT.jar)对构造函数 java.nio.DirectByteBuffer(long,int) 的非法反射访问警告:请考虑将此报告给 io.ne
..
似乎 javax.activation 包在 Java 9 中已被弃用.Oracle 迁移指南建议在 JVM 启动期间使用 --add-modules java.activation 选项. 但是,我想避免这种情况并替换 javax.activation 包的类,因为它已被弃用,并将在未来的 java 版本中删除.我想,javax.activation 应该有某种替代方案.如果有的话,是什么
..
我将 1 个实例(2 个 vCPU,2GB RAM,负载 ~4k req/sec)切换到 Java 9(来自最新的 Java 8).有一段时间,一切都很好,CPU使用率和以前一样.但是,大约 6 小时后,CPU 消耗无缘无故地增加了 4%(从 21% 到 25%).我没有流量高峰,没有内存消耗增加,没有指标变化(我在代码中的每个方法都有计数器).什么都没有. 我让这个实例保持原样大约 12
..
Object.finalize() 在 Java 9 中已被弃用,我想我明白其中的原因,但我很难看到如何替换它. 我有一个名为 Configuration 的实用程序类,它本质上只有一个实例,它拥有应用程序中的所有内容并在应用程序期间持续存在.它提供的服务之一是记录:在第一次请求记录消息时,会创建一个记录器(由于各种遗留原因,它是我自己的记录器而不是标准记录器),并在配置对象的字段中保存一个
..
我的项目是一个使用 Mockito 测试库的 Wildfly 13 应用程序.该应用程序未使用 Java 9 模块结构.只要服务器在 Java 8 上运行,测试就可以正常工作,但是一旦我们升级到 Java 9,它们就会失败,并出现以下异常: org.objenesis.ObjenesisException: java.lang.ClassNotFoundException: sun.reflec
..
来自 Map.java - Map.of() 和 Map.ofEntries() 静态工厂方法提供了一种创建不可变地图的便捷方式. 但是当我已经可以 使用重载方法 ... Map.of("k1","v1","k2","v2","k3","v3"...); ... Map.ofEntries 有什么用呢 返回一个不可变映射,其中包含从给定条目中提取的键和值,并且条目本身不存储在
..
我正在尝试在 Java 9 上运行我的 Spring Boot 应用程序,我遇到了 JAXB 问题,该问题在指南中有所描述,但对我不起作用.我添加了对 JAXB api 的依赖,并且应用程序开始工作.如果您收到以下异常,由于缺少使用 Java 版本 >=9 的 JAXB 缺少实现: javax.xml.bind.JAXBException:在模块路径或类路径上找不到 JAXB-API 的实现.在
..
我有 3 罐 jackson 库 jackson-core-2.8.10.jar jackson-annotations-2.8.0.jar jackson-databind-2.8.10.jar 我成功地为 core 和 annotation 创建了 module-info.java 并使用 jdeps 将它们转换为 Named maodule. 对于 databind ,
..
直到 java9 用于将外部 jar 添加到类路径在运行时由每个人以编程方式使用: URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader();Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{U
..
项目结构 我有一个用 Java 8 编写的项目,我想将其更新为 Java 9.所以我将这些类分成了 2 个单独的模块.模块: org.ggp.base 和 module-info.java 在目录 org.ggp.base/src/main/java 中.在我开始更新到 Java 9 之前,它的构建是使用 Gradle 自动构建的.该模块使用包含在 pl.edu.prz.klopusz
..
最近我从官方网站安装了 JDK 9 和 Apache Cassandra.但是现在当我在前台启动 cassandra 时,我收到以下消息: apache-cassandra-3.11.1/bin$ ./cassandra -f[0.000s][warning][gc] -Xloggc 已弃用.将使用 -Xlog:gc:/home/mmatak/monero/apache-cassandra-3.
..
Java 9 即将推出,更多特性将添加到 Java 接口中,例如私有方法.接口中的 default 方法是在 Java 8 中添加的,本质上是为了 支持在集合中使用 lambdas,而不会破坏与该语言以前版本的复古兼容性. 在 Scala 中,trait 中的方法非常有用.但是,Scala 处理 trait 的方法与使用 default 方法的 Java 不同.考虑多重继承解析或使用 tra
..
我从未在 IntelliJ IDEA 中使用过模块,但在 Java 9 中出现了模块(我也从未使用过但现在想研究这是什么) 那么问题是:有没有相互匹配的?或者 IDEA 模块很早就出现并且用于不同的目的? 解决方案 这是一个类似的概念,早在 Java 9 模块之前就出现了.它也不是特定于 IDE 的.像 Maven 和 Gradle 这样的构建系统在处理由多个子项目组成的项目时也使用
..
有没有人知道为什么这段代码适用于 java 8 而不适用于 java 9 String[] strings = (String[]) Arrays.asList("foo", "bar").toArray();对于(字符串字符串:字符串){System.out.println(string);} 我知道我们可以在执行 toArray 而不是强制转换时指定类型.但是我在调试我们的一个依赖项
..
安装jdk9后我一直看到这个问题: $hiveJava HotSpot(TM) 64 位服务器 VM 警告:忽略选项 MaxPermSize;在 8.0 中移除了支持SLF4J:类路径包含多个 SLF4J 绑定.SLF4J:在 [jar:file:/usr/local/Cellar/hive/2.3.1/libexec/lib/log4j-slf4j-impl-2.6.2.jar!/org/sl
..
我在一个遗留应用程序中有代码和一个测试用例,可以总结如下: @Testpublic void testParseDate() 抛出 ParseException {String toParse = "Mo Aug 18 11:25:26 MESZ +0200 2014";字符串模式 =“EEE MMM dd HH:mm:ss z Z yyyy";DateFormat dateFormatter
..
假设我有这个代码: Collections.singletonList(10).parallelStream()//.stream() - 没有任何变化.flatMap(x -> Stream.iterate(0, i -> i + 1).limit(x).平行线().peek(m -> {System.out.println(Thread.currentThread().getName())
..
Java 9 出来了,Observer 已被弃用.这是为什么?这是否意味着我们不应该再实现观察者模式? 最好知道什么是更好的选择? 解决方案 这是为什么?这是否意味着我们不应该再实现观察者模式了? 先回答后半部分—— YES,这确实意味着你不应该再实现 Observer 和 Obervables. 为什么不推荐使用 - 他们没有为应用程序提供足够丰富的事件模型
..
我很难理解 java-9 ImmutableCollections.SetN 中的实现细节;具体为什么需要将内部数组增加两次. 假设你这样做: Set.of(1,2,3,4)//4 个元素,但内部数组为 8 更确切地说,我完全理解为什么在 HashMap 的情况下这样做(双重扩展) - 您从不(几乎)希望 load_factor 成为其中之一.!=1 的值可以缩短搜索时间,因为条目可以更
..
Java 9 带有用于创建不可变列表的便利工厂方法.最后创建一个列表很简单: Listlist = List.of("foo", "bar"); 但是这个方法有 12 个重载版本,11 个带有 0 到 10 个元素,一个带有 var args. static 列表of(E... 元素) Set 和 Map 也是如此. 既然有 var args 方法,那么多出 11 个方法有什么
..