目录
方式1:手动解压 jdk 包方式, 才能保持 jdk 安装目录可控。
总结:不管什么,尽可能多的把握在自己手里吧。眼角湿润了
方式1:手动解压 jdk 包方式, 才能保持 jdk 安装目录可控。
步骤不难:两步:
1.下载包,上传服务器,解压。
下载(jdk-8u171-linux-x64.tar.gz): https://pan.baidu.com/s/1T0ZGwV0y-cZBc9AszXSDrg 提取码: g99n
上传服务器: 服务器端执行命令(非root用户 rz命令 上传文件会失败): sudo rz
解压(jdk-8u171-linux-x64.tar.gz): sudo tar zxvf jdk-8u171-linux-x64.tar.gz
jdk-8u171-linux-x64.tar.gz所在的目录下 得到解压包。
2.设置环境变量
修改/etc/profile文件:
》sudo vi /etc/profile
》insert 进入插入模式,文件末尾 新增配置 设置:
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0 #java根目录
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
》Esc 退出插入模式。
》按住shift + 点击两次z (shift zz 保存编辑的内容)
》sudo tail /etc/profile 文件末尾查看 刚才的配置 是否保存成功
》source /etc/profile 使环境变量生效
3、验证 java 和 javac 是否 有效
分别输入 java 和 javac 如果都有 命令提示,那么 才算安装成功。
如果没有命令提示,那么应该是忘记 了 :》source /etc/profile 使环境变量生效
2和3 步 参考 https://www.cnblogs.com/yaun1498078591/p/10368884.html
方式2:yum命令安装,安装位置 不可控。
缺点:jdk 具体安装位置 不可控。
项目案例:
python jpype API 代码调用 java jar sdk(需要jvm目录 固定的),
需要安装java环境, 联调测试时, 开发、预发(命令可安装)、生产环境(命令方式装不上了,眼角湿润,只能手动安装,手动安装 又无法 复现 命令安装的目录。which java 找到的java位置 总是 不通,明明相同的目录,就是不同。。。)
后来 就 代码自定义了 固定jvm目录, 手动解压 jdk 包安装方式 才能保持 jdk 安装目录可控。done
优点:快(命令安装在 默认目录,which java 命令 找到的目录 不一致。jdk 具体安装位置 不可控。)
https://www.cnblogs.com/yaun1498078591/p/10368884.html
copy:
-
使用yum查找jdk: yum search java|grep jdk
# yum search java|grep jdk ldapjdk-javadoc.noarch : Javadoc for ldapjdk java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector java-1.8.0-openjdk-accessibility-debug.i686 : OpenJDK accessibility connector java-1.8.0-openjdk-accessibility-debug.x86_64 : OpenJDK accessibility connector java-1.8.0-openjdk-debug.i686 : OpenJDK Runtime Environment with full debug on java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on java-1.8.0-openjdk-demo.i686 : OpenJDK Demos java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.8.0-openjdk-demo-debug.i686 : OpenJDK Demos with full debug on java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.8.0-openjdk-devel-debug.i686 : OpenJDK Development Environment with full java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with java-1.8.0-openjdk-headless.i686 : OpenJDK Runtime Environment java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment java-1.8.0-openjdk-headless-debug.i686 : OpenJDK Runtime Environment with full java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK API Documentation compressed in java-1.8.0-openjdk-javadoc-zip-debug.noarch : OpenJDK API Documentation java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.8.0-openjdk-src-debug.i686 : OpenJDK Source Bundle for packages with java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with java-11-openjdk.i686 : OpenJDK Runtime Environment 11 java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11 java-11-openjdk-debug.i686 : OpenJDK Runtime Environment 11 with full debug on java-11-openjdk-debug.x86_64 : OpenJDK Runtime Environment 11 with full debug on java-11-openjdk-demo.i686 : OpenJDK Demos 11 java-11-openjdk-demo.x86_64 : OpenJDK Demos 11 java-11-openjdk-demo-debug.i686 : OpenJDK Demos 11 with full debug on java-11-openjdk-demo-debug.x86_64 : OpenJDK Demos 11 with full debug on java-11-openjdk-devel.i686 : OpenJDK Development Environment 11 java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11 java-11-openjdk-devel-debug.i686 : OpenJDK Development Environment 11 with full java-11-openjdk-devel-debug.x86_64 : OpenJDK Development Environment 11 with java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11 java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11 java-11-openjdk-headless-debug.i686 : OpenJDK Runtime Environment with full java-11-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation java-11-openjdk-javadoc-debug.i686 : OpenJDK 11 API documentation for packages java-11-openjdk-javadoc-debug.x86_64 : OpenJDK 11 API documentation for packages java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in java-11-openjdk-javadoc-zip-debug.i686 : OpenJDK 11 API documentation compressed java-11-openjdk-javadoc-zip-debug.x86_64 : OpenJDK 11 API documentation java-11-openjdk-jmods.i686 : JMods for OpenJDK 11 java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11 java-11-openjdk-jmods-debug.i686 : JMods for OpenJDK 11 with full debug on java-11-openjdk-jmods-debug.x86_64 : JMods for OpenJDK 11 with full debug on java-11-openjdk-src.i686 : OpenJDK Source Bundle 11 java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11 java-11-openjdk-src-debug.i686 : OpenJDK Source Bundle for packages with debug java-11-openjdk-src-debug.x86_64 : OpenJDK Source Bundle 11 for packages with ldapjdk.noarch : The Mozilla LDAP Java SDK
-
执行安装命令:yum install java-1.8.0-openjdk
安装成功后,默认安装路径在/usr/lib/jvm/下边,
如/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el6_9.x86_64查看安装路径(如下所示):
which java
ls -lrt /usr/bin/java[root@preproduct1 ~]# which java /usr/bin/java [root@preproduct1 ~]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64 [root@preproduct1 ~]# ls -lrt /usr/bin/java lrwxrwxrwx 1 root root 22 Feb 13 10:40 /usr/bin/java -> /etc/alternatives/java [root@preproduct1 ~]# ls -lrt /etc/alternatives/java lrwxrwxrwx 1 root root 73 Feb 13 10:40 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java [root@preproduct1 ~]# cd /usr/lib/jvm [root@preproduct1 /usr/lib/jvm]# ll total 4 lrwxrwxrwx 1 root root 26 Feb 13 10:44 java -> /etc/alternatives/java_sdk lrwxrwxrwx 1 root root 32 Feb 13 10:44 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0 lrwxrwxrwx 1 root root 40 Feb 13 10:44 java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdk drwxr-xr-x 7 root root 4096 Feb 13 10:44 java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64 lrwxrwxrwx 1 root root 34 Feb 13 10:44 java-openjdk -> /etc/alternatives/java_sdk_openjdk lrwxrwxrwx 1 root root 21 Feb 13 10:40 jre -> /etc/alternatives/jre lrwxrwxrwx 1 root root 27 Feb 13 10:40 jre-1.8.0 -> /etc/alternatives/jre_1.8.0 lrwxrwxrwx 1 root root 35 Feb 13 10:40 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk lrwxrwxrwx 1 root root 51 Feb 13 10:40 jre-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64 -> java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre lrwxrwxrwx 1 root root 29 Feb 13 10:40 jre-openjdk -> /etc/alternatives/jre_openjdk
-
验证java是否安装成功
-
查看java版本:java -version
# java -version openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
-
查看java是否可用:javac
# javac -bash: javac: command not found
错误原因:默认安装完只有运行环境,java安装目录下只有jre文件夹
-
-
安装开发环境yum install java-1.8.0-openjdk-devel.x86_64
安装完可看到java安装目录下出现bin、lib等文件夹:[root@preproduct1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64]# l total 20 drwxr-xr-x 2 root root 4096 Feb 13 10:44 bin drwxr-xr-x 3 root root 4096 Feb 13 10:44 include drwxr-xr-x 4 root root 4096 Feb 13 10:40 jre drwxr-xr-x 3 root root 4096 Feb 13 10:44 lib drwxr-xr-x 2 root root 4096 Feb 13 10:44 tapset
再次输入javac说明安装成功
# javac Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are use -classpath <path> Specify where to find user class files and annotationocessors -cp <path> Specify where to find user class files and annotationocessors -sourcepath <path> Specify where to find input source files -bootclasspath <path> Override location of bootstrap class files -extdirs <dirs> Override location of installed extensions -endorseddirs <dirs> Override location of endorsed standards path -proc:{none,only} Control whether annotation processing and/or compilat is done. -processor <class1>[,<class2>,<class3>...] Names of the annotation processors ton; bypasses default discovery process -processorpath <path> Specify where to find annotation processors -parameters Generate metadata for reflection on method parameters -d <directory> Specify where to place generated class files -s <directory> Specify where to place generated source files -h <directory> Specify where to place generated native header files -implicit:{none,class} Specify whether or not to generate class files for imcitly referenced files -encoding <encoding> Specify character encoding used by source files -source <release> Provide source compatibility with specified release -target <release> Generate class files for specific VM version -profile <profile> Check that API used is available in the specified proe -version Version information -help Print a synopsis of standard options -Akey[=value] Options to pass to annotation processors -X Print a synopsis of nonstandard options -J<flag> Pass <flag> directly to the runtime system -Werror Terminate compilation if warnings occur @<filename> Read options and filenames from file
-
设置环境变量
修改/etc/profile文件:vi /etc/profile
在profile文件末尾新增如下内容:#set java environment JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
使环境变量生效:source /etc/profile
[root@preproduct1 /usr/lib/jvm]# cd /usr/lib/jvm [root@preproduct1 /usr/lib/jvm]# cd java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/ [root@preproduct1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64]# source /etc/profile [root@preproduct1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
至此jdk安装成功