Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 未定义JAVA_HOME和JRE_HOME环境变量_Linux_Bash_Tomcat_Centos_Java Home - Fatal编程技术网

Linux 未定义JAVA_HOME和JRE_HOME环境变量

Linux 未定义JAVA_HOME和JRE_HOME环境变量,linux,bash,tomcat,centos,java-home,Linux,Bash,Tomcat,Centos,Java Home,在CentOS中执行sudo./startup.sh时,我收到以下错误: “JAVA_HOME和JRE_HOME环境变量都不是 定义“ 但我已经用以下方式在bashrc中对其进行了定义: export JAVA_HOME=/home/manish/New_learning/jdk1.8.0_212 export PATH=$JAVA_HOME/bin:$PATH 当您在.bashrc文件中定义它时,它就可以为您的用户定义好了 使用sudo启动命令时,它以超级用户/根用户的身份运行,而不是以您的

在CentOS中执行
sudo./startup.sh
时,我收到以下错误:

“JAVA_HOME和JRE_HOME环境变量都不是 定义“

但我已经用以下方式在bashrc中对其进行了定义:

export JAVA_HOME=/home/manish/New_learning/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH

当您在.bashrc文件中定义它时,它就可以为您的用户定义好了

使用sudo启动命令时,它以超级用户/根用户的身份运行,而不是以您的用户的身份运行;因此,在这种情况下,您的.bashrc文件是“无用”的

您应该使用系统文件更新您的环境,如/etc/profile.d下的内容,例如:

sudo touch /etc/profile.d/variousPath.sh
sudo chown bsquare /etc/profile.d/variousPath.sh
cat >> /etc/profile.d/variousPath.sh <<EOF
export JAVA_HOME=/home/manish/New_learning/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH
EOF
sudo touch/etc/profile.d/variousPath.sh
sudo chown bsquare/etc/profile.d/variousPath.sh
cat>>/etc/profile.d/variousPath.sh请添加

../tomcat/bin/startup.sh

具有以下java参数语法的脚本:

JAVA\u HOME=/JDK/path/

PATH=$PATH:$HOME/bin:$JAVA\u HOME/bin

导出路径

export JAVA\u HOME

示例

JAVA\u HOME=/appl/prod/Protine/tomcat/jdk1.5.0\u 16/

PATH=$PATH:$HOME/bin:$JAVA\u HOME/bin

导出路径

export JAVA\u HOME


它对我有用,希望它也能对你有用。

fyi,这使得
JRE\u HOME
的问题没有定义。当您键入
sudo echo$JAVA\u HOME&&sudo./startup.sh
时会发生什么?您看到java文件夹的路径了吗?它确实显示了我在bashrc文件中添加的路径,我在没有sudo的情况下尝试过,但遇到以下错误/startup.sh touch:cannot touch'/home/manish/New_learning/apache-tomcat-9.0.19-src/logs/catalina.out':没有这样的文件或目录/home/manish/New_learning/apache-tomcat-9.0.19-src/logs/catalina.out:没有sudo,我没有尝试过这样的文件或目录,但我没有读到下面错误/startup.sh touch:cannot touch'/home/manish/New_learning/apache-tomcat-9.0.19-src/logs/catalina.out':没有这样的文件或目录/home/manish/New_learning/apache-tomcat-9.0.19-src/logs/catalina.out:没有这样的文件或目录是,因为startup.sh脚本需要根权限。因此,您必须保留sudo,但在其他地方定义您的JRE/JDK变量;我要更新我的答案,你觉得可以吗?