Linux 未定义JAVA_HOME和JRE_HOME环境变量
在CentOS中执行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启动命令时,它以超级用户/根用户的身份运行,而不是以您的
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变量;我要更新我的答案,你觉得可以吗?