我在Linux上有一个Amazon EC2 t3.medium实例。我正在尝试在这个实例上运行Apache ni fi,我需要java。当我检查JAVA_HOME默认值时:
$ echo$JAVA_HOME
-bash: echo/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.amzn2.0.2.x86_64: No such file or directory
然后,我在终端上通过以下命令下载了java1.8:
$ sudo yum install java-1.8.0-openjdk.x86_64
$ sudo update-alternatives --config java
(I selected 2 for java 1.8)
为了找到我的java文件的位置,我运行它们:
$ file $(which java)
/usr/bin/java: symbolic link to `/etc/alternatives/java'
$ file /etc/alternatives/java
/etc/alternatives/java: symbolic link to `/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64/jre/bin/java'
$ file /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64/jre/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64/jre/bin/java: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=1b1c0fd721197a04f9bfc9b0891f1bd83a5f49d5, not stripped
我想它工作正常。然后,我在终端上为ec2用户和root用户编写以下命令,将JAVA_HOME从1.7更改为1.8:
[root@ip-178-32-11-247 ~]# export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64"
[root@ip-178-32-11-247 ~]# PATH=$JAVA_HOME/bin:$PATH
事先,我已经在root上设置了nifi。在nifi-1.1.6.0目录中,我正在尝试运行以下命令:
[root@ip-178-32-11-247 nifi-1.16.0]# bin/nifi.sh start
错误消息为:
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64
NiFi home: /root/nifi-1.16.0
Bootstrap Config File: /root/nifi-1.16.0/conf/bootstrap.conf
bin/nifi.sh: line 401: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64/bin/java: No such file or directory
我认为java正在工作,但java_HOME无法正确设置,但我无法解决这个问题。在这一点上,我应该做些什么来解决问题并启动nifi?
如果你能帮忙,我将不胜感激,因为这个错误,我无法开始我的学期项目:(
JAVA_HOME
的正确路径应该是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64/jre/bin/java
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.amzn2.0.2.x86_64/jre/bin/java"
但您可能不需要导出JAVA_HOME
。您应该在/usr/bin/
中有一个链接。您可以通过以下操作进行检查:
[ssm-user@ip-172-31-85-243 bin]$ which java
/usr/bin/java
默认情况下,ApacheNifi使用可执行文件/usr/bin/java
,因此不需要导出JAVA_HOME
。