在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就是一些老的资料文章,为了避免这些坑,宏哥才决定写着一篇文章。
JDK是JAVA的软件开发工具包,如果要使用JAVA来进行开发,或者部署基于其开发的应用,那么就需要安装JDK。本次将在Linux下安装JDK及配置环境。在以前宏哥也在Linux下安装过JDK,安装过程溜得飞起来。结果这次安装过程中却是十分的不顺,所以才有了这篇文章用来记录和分享安装过程中遇到的问题和心得体会,希望对各位有所帮忙,避免做更多的无用功。
宏哥的环境:
查看Linux环境输入命令:lsb_release-a
[admin@oftpclient201~]$lsb_release-a
LSBVersion:::::::::::
DistributorID:CentOS
Description:(Core)
Release:7.9.2009
2.下载JDK在安装之前,检查是否存在Linux下自带的OpenJDK,命令:rpm-qa|grepjava。若存在,则需要进行卸载,命令:rpm-e--nodeps卸载的软件名。
其他方法:
java-version
echo$PATH看环境变量bai是否配du置了java路径
find/-namejava查找zhijava文件
JDK历史版本链接:
接着,我们可以通过wget命令下载JDK安装包,或者下载后传到Linux。我这里下载的安装包版本是。
2.1使用wget下载JDK8每次去官网下载JDK有点烦但是直接使用wget又得同意协议所以使用如下的wget就好了(注意是64位的哦)
1.先去官网看一下地址变化没有如下:修改后面的下载地址即可注意哦~现在和以前变化挺大的,所以宏哥在这里赘述一下具体步骤:
(1)在浏览器的地址栏输入JDK官网,如下图所示:





(6)在xshell上输入命令wget--no-check-certificate--no-cookies--header"Cookie:oraclelicense=accept-securebackup-cookie"后面加上你刚才复制的下载链接
2.然后使用下面的wget下载就好了~(注意文件的后缀,有时候不可以直接解压需要重命名后缀名哦)
wget--no-check-certificate--no-cookies--header"Cookie:oraclelicense=accept-securebackup-cookie"
3.解压安装包创建一个文件夹,用于存放JDK安装包,然后解压到该目录下。
创建文件夹:mkdir/usr/JDK
进入文件夹:cd/usr/JDK
将下载好的压缩文件剪贴到创建好的文件夹下:/usr/JDK/
解压:

可以看到,本次解压到了当前目录/usr/JDK/_281下。
4.配置环境解压完成之后,我们要配置下环境变量,通过vim命令修改配置文件/etc/profile来设置环境变量。
vim/etc/profile
在文件最后一行,输入i进入编辑模式,添加以下内容,然后按Esc退出编辑模式,再输入:wq保存并退出。
exportJAVA_HOME=/usr/JDK/_281
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:$PATH
设置完之后,如果要使环境变量立即生效,需要通过命令:source/etc/profile,重新加载配置文件。
5.验证是否安装成功所有都配置好了,我们需要验证下是否安装成功。
依次输入java-version、java、javac,不会出现报错并且显示出jdk版本号及java/javac相关命令参数说明界面。
[admin@oftpclient201~]$java-version
javaversion"1.8.0_281"
Java(TM)SERuntimeEnvironment(_281-b09)
JavaHotSpot(TM)64-BitServerVM(,mixedmode)
[admin@oftpclient201~]$java
Usage:java[-options]class[args]
(toexecuteaclass)
orjava[-options]-jarjarfile[args]
(toexecuteajarfile)whereoptionsinclude:
-d32usea32-bitdatamodelifavailable
-d64usea64-bitdatamodelifavailable
-servertoselectthe"server"VM
ThedefaultVMisserver.
-cpclasssearchpathofdirectoriesandzip/jarfiles
-classpathclasssearchpathofdirectoriesandzip/jarfiles
A:separatedlistofdirectories,JARarchives,
andZIParchivestosearchforclassfiles.
-Dname=value
setasystemproperty
-verbose:[class|gc|jni]
enableverboseoutput
-versionprintproductversionandexit
-version:value
Warning:thisfeatureisdeprecatedandwillberemoved
inafuturerelease.
requirethespecifiedversiontorun
-showversionprintproductversionandcontinue
-jre-restrict-search|-no-jre-restrict-search
Warning:thisfeatureisdeprecatedandwillberemoved
inafuturerelease.
include/excludeuserprivateJREsintheversionsearch
-?-helpprintthishelpmessage
-Xprinthelponnon-standardoptions
-ea[:packagename|:classname]
-enableassertions[:packagename|:classname]
enableassertionswithspecifiedgranularity
-da[:packagename|:classname]
-disableassertions[:packagename|:classname]
disableassertionswithspecifiedgranularity
-esa|-enablesystemassertions
enablesystemassertions
-dsa|-disablesystemassertions
disablesystemassertions
-agentlib:libname[=options]
loadnativeagentlibrarylibname,-agentlib:hprof
seealso,-agentlib:jdwp=helpand-agentlib:hprof=help
-agentpath:pathname[=options]
loadnativeagentlibrarybyfullpathname
-javaagent:jarpath[=options]
loadJavaprogramminglanguageagent,
-splash:imagepath
showsplashscreenwithspecifiedimage
See.
[admin@oftpclient201~]$javac
Usage:javacoptionssourcefileswherepossibleoptionsinclude:
-gGeneratealldebugginginfo
-g:noneGeneratenodebugginginfo
-g:{lines,vars,source}Generateonlysomedebugginginfo
-nowarnGeneratenowarnings
-verboseOutputmessagesaboutwhatthecompilerisdoing
-deprecationOutputsourcelocationswheredeprecatedAPIsareused
-classpathpathSpecifywheretofinduserclassfilesandannotationprocessors
-cppathSpecifywheretofinduserclassfilesandannotationprocessors
-sourcepathpathSpecifywheretofindinputsourcefiles
-bootclasspathpathOverridelocationofbootstrapclassfiles
-extdirsdirsOverridelocationofinstalledextensions
-orseddirsdirsOverridelocationoforsedstandardspath
-proc:{none,only}Controlwhetherannotationprocessingand/orcompilationisdone.
-processorclass1[,class2,class3]Namesoftheannotationprocessorstorun;bypassesdefaultdiscoveryprocess
-processorpathpathSpecifywheretofindannotationprocessors
-parametersGeneratemetadataforreflectiononmethodparameters
-ddirectorySpecifywheretoplacegeneratedclassfiles
-sdirectorySpecifywheretoplacegeneratedsourcefiles
-hdirectorySpecifywheretoplacegeneratednativeheaderfiles
-implicit:{none,class}Specifywhetherornottogenerateclassfilesforimplicitlyreferencedfiles
-encodingencodingSpecifycharacterencodingusedbysourcefiles
-sourcereleaseProvidesourcecompatibilitywithspecifiedrelease
-targetreleaseGenerateclassfilesforspecificVMversion
-profileprofileCheckthatAPIusedisavailableinthespecifiedprofile
-versionVersioninformation
-helpPrintasynopsisofstandardoptions
-Akey[=value]Optionstopasstoannotationprocessors
-XPrintasynopsisofnonstandardoptions
-JflagPassflagdirectlytotheruntimesystem
-WerrorTerminatecompilationifwarningsoccur
@filenameReadoptionsandfilenamesfromfile
[admin@oftpclient201~]$
6.小结安装过程中宏哥为了避免麻烦不是在Windows上直接安装好然后再上传到Linux上,而是直接用weget命令直接安装的,结果遇到如下一系列的问题:
(1)wget+复制好的下载地址
[admin@oftpclient201~]$wget()184.50.93.194()|184.50.93.194|:443connected.
HTTPrequestsent,awaitingresponse302MovedTemporarily
Location:[following]
--2021-02-2515:25:48--
()184.30.17.110,2600:1400:c000:482::366,2600:1400:c000:488::366
()|184.30.17.110|:443connected.
HTTPrequestsent,awaitingresponse302MovedTemporarily
Location:[following]
--2021-02-2515:25:50--
()209.17.4.8
()|209.17.4.8|:443connected.
HTTPrequestsent,awaitingresponse200OK
Length:4103(4.0K)[text/html]
Savingto:‘’
100%[==============================================================================================================================================================================]4,10317.6KB/
2021-02-2515:25:51(17.6KB/s)-‘’saved[4103/4103]
[admin@oftpclient201~]$
从上图看着好像是下载成功了,但是宏哥在解压的时候有报错了,报错如下:
[admin@oftpclient201~]$
gzip:stdin:notingzipformat
tar:Childreturnedstatus1
tar:Errorisnotrecoverable:exitingnow
[admin@oftpclient201~]$
从上图的报错可以发现说是压缩包不完整,宏哥好奇既然下载成功怎么会是不完整的了,于是宏哥看了一下压缩包的大小,如下所示才4.1K,
[admin@oftpclient201~]$ll-lh
:25]-:24:20:21
[admin@oftpclient201~]$
这个与Oracle官网显示的大小100多M差太多了,所以确定是下载不成功而且回过头来看一下下载时间几乎零点几秒就下载完成了,更加确定下载的压缩包是不完整的。
查了资料说是由于Oracle需要acceptlicense、cookie,所以需要给wget带如下参数即可,于是就有了第二种方法的尝试
(2)wget--no-check-certificate--no-cookies--header"Cookie:oraclelicense=accept-securebackup-cookie"+复制好的下载地址
[admin@oftpclient201~]$wget--no-cookies--header"Cookie:oraclelicense=accept-securebackup-cookie;"
--2021-02-2515:56:55--
()92.123.228.99
()|92.123.228.99|:443connected.
HTTPrequestsent,awaitingresponse302MovedTemporarily
Location:[following]
--2021-02-2515:56:56--
()23.76.64.181,2a02:26f0:a00:3be::366,2a02:26f0:a00:385::366
()|23.76.64.181|:443connected.
HTTPrequestsent,awaitingresponse302MovedTemporarily
Location:[following]
--2021-02-2515:56:57--
()209.17.4.8
()|209.17.4.8|:443connected.
HTTPrequestsent,awaitingresponse200OK
Length:4149(4.1K)[text/html]
Savingto:‘’
100%[==============================================================================================================================================================================]4,149--.-K/sin0s
2021-02-2515:56:59(24.7MB/s)-‘’saved[4149/4149]
[admin@oftpclient201~]$
(3)在方法二的基础上将下载地址中的otn修改成otn-pub
[admin@oftpclient201~]$wget--no-check-certificate--no-cookies--header"Cookie:oraclelicense=accept-securebackup-cookie"
--2021-02-2516:10:40--
()184.86.92.87
()|184.86.92.87|:443connected.
HTTPrequestsent,awaitingresponse302MovedTemporarily
Location:[following]
--2021-02-2516:10:41--
()23.76.87.214,2600:1400:c000:482::366,2600:1400:c000:488::366
()|23.76.87.214|:443connected.
HTTPrequestsent,awaitingresponse302MovedTemporarily
Location:[following]
--2021-02-2516:10:42--
()|184.86.92.87|:443connected.
HTTPrequestsent,awaitingresponse200OK
Length:143722924(137M)[application/x-gzip]
Savingto:‘’
100%[==============================================================================================================================================================================]143,722,9242.67MB/sin57s
2021-02-2516:11:40(2.41MB/s)-‘’saved[143722924/143722924]
[admin@oftpclient201~]$ll-h
从上图可以看出下载时间是57s,虽然这个时间与网速有关系,但是大致感觉时间也差不多了。因此宏哥判断这次是真的解决了,安装包下载成功了。
和宏哥来再次看一下压缩的安装包的大小是138M,和官网展示的大小也差不多,预示着下载成功,问题解决
[admin@oftpclient201~]$ll-h
:09]-:12:20:21
[admin@oftpclient201~]$
7.拓展7.1linux下如何查看已安装的centos版本信息1.Linux查看当前操作系统版本信息cat/proc/version
[admin@oftpclient201~]$cat/proc/version
_64(mockbuild@)(()(GCC))1SMPFriDec1816:34:56UTC2020x86_64x86_64x86_64GNU/Linux
3.linux查看版本当前操作系统发行信息cat/etc/issue或cat/etc/centos-release
[admin@oftpclient201~]$cat/etc/centos-release
(Core)
4.Linux查看cpu相关信息,包括型号、主频、内核信息等cat/etc/cpuinfo
[admin@oftpclient201~]$cat/proc/cpuinfo
processor:0数值为1表示第2颗cpu
vor_id:GenuineIntel
cpufamily:6
model:58
modelname:Intel(R)Core(TM)i5-3320MCPU@2.60GHz
stepping:9
microcode:0x15
cpuMHz:2594.170
cachesize:3072KB
physicalid:2
siblings:1
coreid:0
cpucores:1
apicid:2
initialapicid:2
fpu:yes
fpu_exception:yes
cpuidlevel:13
wp:yes
flags:fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushdtsmmxfxsrssesse2sssyscallnxrdtscplmconstant_tscarch_perfmonpebsbtsnoplxtopologytsc_reliablenonstop_tscaperfmperfeagerfpupnipclmulqdqssse3cx16pcidsse4_1sse4_2x2apicpopcnttsc_deadline_timeraesxsaveavxf16crdrandhypervisorlahf_lmepbfsgsbasetsc_adjustsmepdthermidaaratplnpts
bogomips:5188.34
clflushsize:64
cache_alignment:64
addresssizes:42bitsphysical,48bitsvirtual
powermanagement:
processor:系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
vor_id:CPU制造商
cpufamily:CPU产品系列代号
model:CPU属于其系列中的哪一代的代号
modelname:CPU属于的名字及其编号、标称主频
stepping:CPU属于制作更新版本
cpuMHz:CPU的实际使用主频
cachesize:CPU二级缓存大小
physicalid:单个CPU的标号
siblings:单个CPU逻辑物理核数
coreid:当前物理核在其所处CPU中的编号,这个编号不一定连续
cpucores:该逻辑核所处CPU的物理核数
apicid:用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu:是否具有浮点运算单元(FloatingPointUnit)
fpu_exception:是否支持浮点计算异常
cpuidlevel:执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp:表明当前CPU是否在内核态支持对用户空间的写保护(WriteProtection)
flags:当前CPU支持的功能
bogomips:在系统内核启动时粗略测算的CPU速度(MillionInstructionsPerSecond)
clflushsize:每次刷新缓存的大小单位
cache_alignment:缓存地址对齐单位
addresssizes:可访问地址空间位数
5.Linux查看版本说明当前CPU运行在32bit模式下(但不代表CPU不支持64bit)
[admin@oftpclient201etc]$getconfLONG_BIT64
7.2uname的使用uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
uname-a显示全部信息-m或--machine:显示电脑类型;-r或--release:显示操作系统的发行编号;-s或--sysname:显示操作系统名称;-v:显示操作系统的版本;-p或--processor:输出处理器类型或"unknown";-i或--hardware-platform:输出硬件平台或"unknown";-o或--operating-system:输出操作系统名称;--help:显示帮助;--version:显示版本信息。
7.3查看Linux版本1.查看系统版本信息的命令lsb_release-a
(使用命令时提示commandnotfound,需要安装yuminstallredhat-lsb-y)
[admin@oftpclient201etc]$
[admin@oftpclient201etc]$lsb_release-a
LSBVersion:::::::::::
DistributorID:CentOS
Description:(Core)
Release:7.9.2009
Codename:Core
注:这个命令适用于所有的linux,包括RedHat、SUSE、Debian等发行版。
2.查看centos版本号cat/etc/issue
[admin@oftpclient201etc]$cat/etc/issue
\S
Kernel\ronan\m
[admin@oftpclient201etc]$
3.使用file/bin/ls
[admin@oftpclient201etc]$file/bin/ls/bin/ls:ELF64-bitLSBexecutable,x86-64,version1(SYSV),dynamicallylinked(usessharedlibs),forGNU/,BuildID[sha1]=c8ada1f7095f6b2bb7ddc848e088c2d615c3743e,stripped
[admin@oftpclient201etc]$
原文链接:Linux下安装你必须知道的那些糟心事!
