首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我安装了Java 7时,cassandra 2抱怨Java 7

当我安装了Java 7时,cassandra 2抱怨Java 7
EN

Stack Overflow用户
提问于 2014-06-12 17:03:47
回答 8查看 9.5K关注 0票数 2
代码语言:javascript
复制
$ cassandra 
Cassandra 2.0 and later require Java 7 or later.

好吧,init脚本的那一部分是怎么回事?

代码语言:javascript
复制
java_ver_output=`"${JAVA:-java}" -version 2>&1`

jvmver=`echo "$java_ver_output" | awk -F'"' 'NR==1 {print $2}'`
JVM_VERSION=${jvmver%_*}
JVM_PATCH_VERSION=${jvmver#*_}


if [ "$JVM_VERSION" \< "1.7" ] ; then
    echo "Cassandra 2.0 and later require Java 7 or later."
    exit 1;
fi

嗯,如果我在命令行得到版本:

代码语言:javascript
复制
$ java_ver_output=`"${JAVA:-java}" -version 2>&1`

$ echo $java_ver_output
java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

$ JVM_VERSION=${jvmver%_*}

$ echo $JVM_VERSION
1.7.0

如果我运行which java

代码语言:javascript
复制
$ which java
/usr/bin/java

如果我把这行写在剧本里:

代码语言:javascript
复制
/usr/bin/java

令人沮丧的是,我已经运行在过去,但自从我弹出服务器,我不能让卡桑德拉开始。

我在这里很困惑,为什么Cassandra会对我运行的Java版本感到困惑呢?我怎么让卡桑德拉跑?1.7.0_55不是Java 7(我不知道Java的命名约定)吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-06-25 07:33:54

我在试图启动卡桑德拉时收到了同样的错误信息。但我通知说,只有当启动Cassandra作为root时才会出现错误。当我以本地用户的身份启动Cassandra时,它起了作用。

结果表明,java只为本地用户配置:

代码语言:javascript
复制
$ java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)
$ sudo java -version
sudo: java: command not found

这解决了问题:

告诉系统您已经安装了JRE (将usr/local/java/jre1.7.0_60/bin/java更新为当前路径):

代码语言:javascript
复制
$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jre1.7.0_60/bin/java" 1

将新的JRE设置为默认值:

代码语言:javascript
复制
$ sudo update-alternatives --set java /usr/local/java/jre1.7.0_60/bin/java

现在,java是为root安装的,Cassandra可以在没有错误消息的情况下作为root启动。

票数 8
EN

Stack Overflow用户

发布于 2014-06-12 17:08:59

每个文档:安装

集JAVA_HOME 确保设置了JAVA_HOME :回波$JAVA_HOME

所以,确保JAVA_HOME指向/path/to/jdk7

票数 7
EN

Stack Overflow用户

发布于 2015-09-30 07:18:44

为了解决这个问题,我将$JAVA_HOME环境变量更改为我从以下位置找到的路径:

代码语言:javascript
复制
System Preferences -> Java -> java (tab in Java Control Panel) -> View -> Path

我有两个版本的java,默认的一个是java的旧版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24190063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档