我在bash脚本中编写了以下函数java_install
,以便在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
}
答案 0 :(得分:0)
在脚本中使用update alternatives
使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中使用。