Answers:
如果从Sun 下载linux二进制文件,则可以将其安装在所需的任何目录中。然后只需在代码中引用这些库,就可以了。
使用二进制安装程序,它将创建自己的命名子目录(例如,在您的示例中为/usr/java/jdk1.5.0_),因此您可以下载任意数量的文件,并且它们将自己以适当的名称排列子目录。
主要的Java二进制文件位于/ usr / bin中,因此,如果要将其替换为当您键入“ java”时它将访问您的Java而不是那个Java二进制文件,只需将旧的二进制文件移出/ usr / bin ,然后将新链接链接到那里。键入which java
将告诉您系统上的默认Java是什么。
@jldupont:当我想到并发安装时,我想到了同一台计算机上安装的多个版本,我的方法绝对可以为您提供这些版本。我在生产包装盒上安装了大约12个Java版本,以处理尚未更新的公司的反对。
但是,当您键入“ java”时,您只会得到一个Java版本,因为那是“ / usr / bin”中的内容……您必须输入类似“ /usr/java/jdk1.5.1/ bin / java”以获取不是系统默认值的特定Java二进制文件。
只需从oracle下载并执行.bin文件,然后将其自身提取到文件夹中即可。将该文件夹(例如jdk1.6.0_32
)移动到/ usr / lib / jvm中,然后将其setjava
用于更改Java版本的脚本。但是,由于这些export
语句,您需要留在同一终端中。另外,可能没有设置一些小型的jvm工具,但我想它在大多数情况下应该可以使用。我也是一个shell新手,所以如果有更好的可能性,请纠正我:-)我的代码是:
#!/bin/bash
# shouldnt be used in a loop, else the path may become too long
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "Not running as root"
exit
fi
case "$1" in
6)
echo "Setting Java version 6"
export PATH=/usr/lib/jvm/jdk1.6.0_32/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_32
sudo rm /usr/bin/java
sudo rm /usr/bin/javac
sudo rm /usr/bin/javadoc
sudo rm /usr/bin/javah
sudo rm /usr/bin/javap
sudo rm /usr/bin/javaws
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/java /usr/bin/java
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javac /usr/bin/javac
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javadoc /usr/bin/javadoc
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javah /usr/bin/javah
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javap /usr/bin/javap
sudo ln -s /usr/lib/jvm/jdk1.6.0_32/bin/javaws /usr/bin/javaws
javac -version
java -version
;;
7)
echo "Setting Java version 7"
export PATH=/usr/lib/jvm/java-7-openjdk/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk/
sudo rm /usr/bin/java
sudo rm /usr/bin/javac
sudo rm /usr/bin/javadoc
sudo rm /usr/bin/javah
sudo rm /usr/bin/javap
sudo rm /usr/bin/javaws
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/java /usr/bin/java
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javadoc /usr/bin/javadoc
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javah /usr/bin/javah
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javap /usr/bin/javap
sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javaws /usr/bin/javaws
javac -version
java -version
;;
*)
echo "Usage: $0 {6|7}"
esac
exit 0