知识库

在 Neo4J 3.5.x 中使用 Java 运行时 11

Neo4j 3.5.x 支持 Java 11 作为运行时,但自定义代码仍应针对 Java 8 编译。作为最佳实践,建议在受支持的组件(虚拟机管理程序、操作系统、Java 虚拟机)上维护您的基础设施环境。在本例中,我们将展示如何在 Linux 上将 Java JDK 从版本 8 升级到 Java JDK 11。

Java JDK 11 安装

第一步是安装 Java 11,您可以参考所选供应商的说明。我们建议使用 JDK 以便在生产环境中运行 Neo4j。与 Neo4j 支持联系时,可能需要使用 Java 诊断命令。

  • neo4j-admin report 命令需要 JDK。

  • jstackjmap 将堆内存转储到文件,可用于排查问题。

  • jfr:用于从运行中的 Java 应用程序收集诊断和分析数据的分析工具。自 Java 11 起免费提供。

此阶段仍使用 Java 8。允许在同一机器上安装多个 JVM。

java -version 仍会显示 Java 8。

切换为默认的 Java 11

要默认使用 Java 11 运行时,

对于 RedHat、CentOS、Fedora、Amazon AMI:运行 sudo alternatives --config java;对于基于 Debian 的系统,如 Debian、Ubuntu、Suse:运行 sudo update-alternatives --config java

选择正确的版本并按回车。本示例中有 2 个已安装的二进制文件提供 'java'。

$ sudo alternatives --config java

Selection    Command
1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.x86_64/jre/bin/java)
2           /usr/lib/jvm/java-11-amazon-corretto/bin/java

选择第二个选项并按回车进行确认。

java -version 现在应显示 Java 11。

编辑 Neo4J.conf

  • 注释或删除以下行

dbms.logs.gc.options=-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure -XX:+PrintTenuringDistribution
  • 取消注释以下设置

dbms.logs.gc.options=-Xlog:gc,safepoint,age=trace

启动 Neo4J

您会立即在 neo4j.log 中看到 WARNING 消息,您可以安全地忽略它们,如下所示。

WARNING: Please consider reporting this to the maintainers of org.eclipse.collections.impl.utility.ArrayListIterate
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
© . This site is unofficial and not affiliated with Neo4j, Inc.