我有以下功能 java_install
用 bash 脚本编写,用于在 Linux 机器上安装 java
,我将 jdk-1.7.0_80-linux-x64 传递给它.tgz
作为 JAVA_PACKAGE
。
现在发生的事情是 java 被安装并且只能在脚本中正常工作。一旦我退出这个脚本,所有 Java 功能都不起作用,甚至 java -version
也不起作用。有人可以帮我解决我在这里可能遗漏的问题吗?基本上,我只想在执行此脚本后将 java 永久安装在此框上。
java_install() {
local JAVA_PACKAGE=$1
local TMPDIR=/tmp/quickstart
local TARGET=/usr/share
if [ -n "$JAVA_PACKAGE" ] && [ -f "$JAVA_PACKAGE" ]; then
rm -rf $TMPDIR
mkdir -p $TMPDIR
cp $JAVA_PACKAGE $TMPDIR
( cd $TMPDIR && tar fxz $JAVA_PACKAGE && rm $JAVA_PACKAGE )
local JAVA_BASENAME=$(ls -1 $TMPDIR)
mkdir -p $TARGET
if [ -d "$TARGET/$JAVA_BASENAME" ]; then
echo "# Java already installed at $TARGET/$JAVA_BASENAME"
log_info "Java already installed at $TARGET/$JAVA_BASENAME"
else
echo "# Java now installed at $TARGET/$JAVA_BASENAME"
log_info "Java now installed at $TARGET/$JAVA_BASENAME"
mv $TMPDIR/$JAVA_BASENAME $TARGET
fi
rm -rf $TMPDIR
# now create a script to export these settings
export JAVA_HOME=$TARGET/$JAVA_BASENAME
export PATH=$JAVA_HOME/bin:$PATH
else
echo "# cannot find java package to install"
log_error "cannot find java package to install"
fi
}
最佳答案
在您的脚本中使用更新选项
来使您的 java 安装可用:
sudo update-alternatives --install "/usr/bin/java" "java" "path to you java executable" 1
可在此处找到有关此主题的更多信息:How to use the command update-alternatives --config java .
或者,您可以从脚本中将 JAVA HOME
和 PATH
的导出命令写入您的 .bashrc
(如果使用 bash)。这样修改后的变量在 bash shell 中可用。
关于java - 通过bash脚本在Ubuntu 16.04上安装Java7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43486642/