java - 通过bash脚本在Ubuntu 16.04上安装Java7

标签 java linux bash java-7 ubuntu-16.04

我有以下功能 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 HOMEPATH 的导出命令写入您的 .bashrc(如果使用 bash)。这样修改后的变量在 bash shell 中可用。

关于java - 通过bash脚本在Ubuntu 16.04上安装Java7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43486642/

相关文章:

java - 如何检查数组是否包含输入对话框给出的值

linux - 按特定分隔符删除字符串

linux - FIO 延迟百分位数随时间变化

linux - 如何使用带有 bash 的 sudo tee 在文件中写入 $something?

java - Exec 在错误的计算机上运行程序?

java - 无法将字符串添加到 ArrayList : "misplaced construct(s)"

java - 如何通过部署 java heroku 修复语言级别

linux - PostgreSQL : Backup script creating only once backup instead of hourly

python - 运行脚本的 bash 函数

macos - 我怎样才能让 iTerm 使用 brew 显示的更新版本的 bash?在 OSX 上更改用户的 shell