知识库

使用 Java 运行时 11 与 Neo4J 3.5.x

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

选择正确的版本并按回车键。在本示例中,有两个安装的二进制文件提供 '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: 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