13

我正在尝试在 datastax 中运行 cassandra 3.0。但是我收到一条错误消息,说 Cassandra 3.0 及更高版本需要 Java 8u40 或更高版本。

我已经安装了 java 并将 jdk1.8.0_65 移动到/usr/local/java并将 JAVA_HOME 设置为/usr/local/java/jdk1.8.0_65.

但我仍然面临以下错误:

Cassandra 3.0 及更高版本需要 Java 8u40 或更高版本。

4

10 回答 10

5

我在 CentOS 7 上安装了 Cassandra 3.2 DataStax Distribution rpm,并遇到了同样的问题。Cassandra 启动脚本仅在预定义的路径列表中/etc/rc.d/init.d/cassandra查找二进制文件。java

JVM_SEARCH_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/jre-1.7.* /usr/lib/jvm/java-1.7.*/jre"

如果您的 java 二进制文件是/usr/jdk64/jdk1.8.0_60/jre/bin/java,则附加/usr/jdk64/jdk1.8.0_60/jreJVM_SEARCH_DIRS/usr/lib/jvm/jre/usr/jdk64/jdk1.8.0_60/jre.

于 2016-02-02T13:45:22.040 回答
3

检查你的java版本。如果您的 Java 版本是“1.8.0_40”以后。转到这个文件 apache-cassandra-3.7\conf\cassandra-env.ps1 并搜索这个词 JVM_VERSION.CompareTo("1.8.0_40") 然后更改为您的版本。例如,如果您使用 java 1.8.0_102,则更改为 JVM_VERSION.CompareTo("1.8.0_102")。

现在,检查。它会起作用的。

于 2016-09-09T05:56:50.053 回答
2

我也有同样的问题。我的解决方案是编辑文件 apache-cassandra-3.7/bin/cassandra。在包含“#!/bin/sh”(第 2 行)的行下面,您可以像下面这样放置行

JAVA_HOME="/path/of/your/jdk"

例子 :

JAVA_HOME="/opt/jdk1.8.0_101"

希望此解决方案可以帮助您和其他人

于 2016-09-13T03:33:18.943 回答
2

我通常通过将我的特定添加JAVA_HOME到随. 添加:在每个。(或者,如果您希望能够在不重新编辑这些文件的情况下交换 JVM。)$DSE_DIR/resources/cassandra/conf/cassandra.in.sh$DSE_DIR/bin/dse.in.shDataStax
JAVA_HOME=/usr/local/java/jdk1.8.0_65symlink

于 2016-02-03T19:26:08.873 回答
2

以下适用于我在 RHEL 系统上:

百胜安装 java-1.8.0-openjdk
ln -nfs /usr/lib/jvm/jre-1.8.0-openjdk.x86_64 /etc/alternatives/jre
ln -nfs /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java /etc/alternatives/java
于 2016-04-22T10:25:35.240 回答
1
  1. 使用此命令检查 java 的第一个版本java -version
  2. 使用此命令检查 java 的路径echo $JAVA_HOME
于 2016-03-07T12:09:51.947 回答
0

似乎该服务只会从Alternativescassandra中获取 Java 版本。

sudo alternatives --config java

...不要在那里选择Java 9。

sudo service cassandra start

/etc/cassandra/default.conf/jvm.options有更多的 JVM 参数。

于 2018-02-05T09:59:19.013 回答
0

nodetool可能仍在访问早期的 java 版本,我也遇到了同样的问题

简而言之

sudo vim /etc/environment添加这一行 JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre/bin/java"

source /etc/environment

echo $JAVA_HOME

nodetool status

长期这样做

请按照此处的步骤安装和更改系统中安装的 java 版本。它解释得很好。

于 2016-08-05T14:25:26.327 回答
0

尝试使用替代命令:

$ nodetool
Cassandra 3.0 and later require Java 8u40 or later.
$ java -version
java version "1.7.0_151"

$ sudo yum install java-1.8.0-openjdk
... 
$ sudo alternatives --config java

There are 2 programs which provide 'java'.

Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
2           /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number: 2

$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
$ nodetool
usage: nodetool [(-p <port> | --port <port>)]
    [(-pwf <passwordFilePath> | --password-file <passwordFilePath>)]
    [(-h <host> | --host <host>)] [(-u <username> | --username <username>)]
    [(-pw <password> | --password <password>)] <command> [<args>]
于 2017-12-07T06:21:56.853 回答
0

使用以下命令。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
于 2016-03-07T10:34:22.350 回答