华为软件精英算法比赛,官网要求JDK7,电脑原来的JDK8编译的结果提交运行错误。
记录下JDK7重载过程,后面还得改回JDK8。
1. 新建文件夹(已经存在,忽略此步骤):sudu mkdir /usr/lib/jvm
2. jdk-7的解压文件 jdk1.7.0_79放到1中的/usr/lib/jvm文件夹下,原来的jdk1.8.0_92留着以后切换回来用
3. 环境变量 :sudo gedit /etc/profile,
原来的设置如下:
- export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_92
- export JRE_HOME=${JAVA_HOME} /jre
- export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
- export PATH={JAVA_HOME} /bin:$PATH
修改后的设置如下:
- export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79 (只改了这里)
- export JRE_HOME=${JAVA_HOME} /jre
- export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
- export PATH=${JAVA_HOME} /bin:$PATH
4. 设置默认的jdk
- sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_79/bin/java 300
- sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300
- sudo update-alternatives --config java (需要选择系统已有的jdk序号)
5. 验证JDK:java -version
---------------added in 06-30 2018--------------------
"java -version" get failure installation information,
then, I re-edit /etc/profile,
export JAVA_HOME=/opt/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
these path must be added on the head of /etc/profile, besides, empty char ' ' in these paths bring system errors.
6.如果更改后发现jdk版本仍然没有转换过来,重启试试看(我更改系统变量文件 /etc/profile 后,一般能立即生效,有些时候却没有,暂不知原因)
7. while using tar to release .tar.gz file to /usr/lib/jvm, " : Not found in archive
/usr/lib/jvm$ sudo tar zxvf ~/Downloads/jdk-8u171-linux-x64.tar.gz ./
tar: .: Not found in archive
tar: Exiting with failure status due to previous errors
the problem can be figured by adding -C before the second arg ./
sudo tar zxvf ~/Downloads/jdk-8u171-linux-x64.tar.gz -C ./
[sudo] password for caffe:
jdk1.8.0_171/
jdk1.8.0_171/javafx-src.zip
jdk1.8.0_171/bin/
...
(原因: 因为压缩文件使用的相对路径 在当前目录下找不到 /usr目录,通过使用-C指定解压目录可解决此问题 )