通过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