通过bash脚本在ubuntu16.04上安装Java7
我有下面的函数通过bash脚本在ubuntu16.04上安装Java7,java,linux,bash,java-7,ubuntu-16.04,Java,Linux,Bash,Java 7,Ubuntu 16.04,我有下面的函数java\u install是用bash脚本编写的,用于在Linux上安装java,我将jdk-1.7.0\u 80-Linux-x64.tgz作为java\u包传递给它。 现在的情况是java已经安装,并且只在脚本中工作良好。一旦我完成了这个脚本,所有java功能都不起作用,甚至java-version。有人能帮我弄清楚我在这里可能遗漏了什么吗?基本上,我只希望java在这个脚本执行后永久安装在这个盒子上 java_install() { local JAVA_PACKAGE=$
java\u install
是用bash脚本编写的,用于在Linux上安装java
,我将jdk-1.7.0\u 80-Linux-x64.tgz
作为java\u包
传递给它。
现在的情况是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
}
在脚本中使用
updatealternations
,使java安装可用:
sudo update-alternatives --install "/usr/bin/java" "java" "path to you java executable" 1
有关此主题的详细信息,请参见:。
或者,您可以将
JAVA HOME
和PATH
的导出命令从脚本中写入.bashrc
(如果使用bash)。通过这种方式,修改后的变量可以在bash shell中使用。在脚本中使用更新备选方案
,以使java安装可用:
sudo update-alternatives --install "/usr/bin/java" "java" "path to you java executable" 1
有关此主题的详细信息,请参见:。
或者,您可以将
JAVA HOME
和PATH
的导出命令从脚本中写入.bashrc
(如果使用bash)。这样,修改后的变量就可以在bashshell中使用。退出脚本后,JAVA_HOME和PATH不再有效。尝试手动设置它们。您不使用(非常常用的)JavaPPA(webupd8team)有什么原因吗?定义所有java功能都不起作用
-找不到EXE或更险恶的东西?@John3136类似java键工具的功能
@realdonsum我需要所有事情都通过脚本完成,而不需要任何手册。我建议检查$java_BASENAME
的内容,因为java_BASENAME=$(ls-1$TMPDIR)
和导出JAVA_HOME=$TARGET/$JAVA_BASENAME
。退出脚本后,JAVA_HOME和路径不再有效。尝试手动设置它们。您不使用(非常常用的)JavaPPA(webupd8team)有什么原因吗?定义所有java功能都不起作用
-找不到EXE或更险恶的东西?@John3136类似java键工具的功能
@realdonsum我需要所有事情都通过脚本完成,而不需要任何手册。我建议检查$java_BASENAME
的内容,因为java_BASENAME=$(ls-1$TMPDIR)
和导出JAVA\u HOME=$TARGET/$JAVA\u BASENAME
。