AnolisOS 8 安装jdk1.8

dnf 安装openjdk1.8

AnolisOS 可以使用 dnf 或者 yum 进行软件安装,两者指令结构基本相同,推荐使用dnf。

dnf --version     #查看 dnf版本
4.7.0
  Installed: dnf-0:4.7.0-8.0.1.an8.noarch at Mon 04 Jul 2022 05:16:37 AM GMT
  Built    : OpenAnolis Community at Wed 18 May 2022 08:05:12 AM GMT

  Installed: rpm-0:4.14.3-23.0.1.an8.x86_64 at Mon 04 Jul 2022 05:16:24 AM GMT
  Built    : OpenAnolis Community at Wed 18 May 2022 11:24:53 AM GMT

使用dnf查找jdk

dnf  search java|grep jdk

检查是否已经安装了openjdk,查看具体版本

# java -version
openjdk version "1.8.0_342"
OpenJDK Runtime Environment (build 1.8.0_342-b07)
OpenJDK 64-Bit Server VM (build 25.342-b07, mixed mode)

使用dnf安装openjdk1.8

dnf install java-1.8.0-openjdk
Repository epel is listed more than once in the configuration
上次元数据过期检查:2:08:27 前,执行于 2022年09月22日 星期四 13时52分44秒。
软件包 java-1.8.0-openjdk-1:1.8.0.342.b07-2.an8_6.x86_64 已安装。
依赖关系解决。
============================================================================================================================================================================
 软件包                                              架构                           版本                                            仓库                               大小
============================================================================================================================================================================
升级:
 java-1.8.0-openjdk                                  x86_64                         1:1.8.0.345.b01-1.an8_6                         AppStream                         347 k
 java-1.8.0-openjdk-devel                            x86_64                         1:1.8.0.345.b01-1.an8_6                         AppStream                         9.8 M
 java-1.8.0-openjdk-headless                         x86_64                         1:1.8.0.345.b01-1.an8_6                         AppStream                          34 M

事务概要
============================================================================================================================================================================
升级  3 软件包

总下载:44 M
确定吗?[y/N]:

已升级:
  java-1.8.0-openjdk-1:1.8.0.345.b01-1.an8_6.x86_64   java-1.8.0-openjdk-devel-1:1.8.0.345.b01-1.an8_6.x86_64   java-1.8.0-openjdk-headless-1:1.8.0.345.b01-1.an8_6.x86_64  

完毕!
[root@anolis ~]# java -version
openjdk version "1.8.0_345"
OpenJDK Runtime Environment (build 1.8.0_345-b01)
OpenJDK 64-Bit Server VM (build 25.345-b01, mixed mode)

可见新版本的 openjdk1.8已经安装成功。
查看安装路径,默认安装路径在/usr/lib/jvm/下边,
如/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-2.an8_6.x86_64

[root@anolis ~]# which java
/usr/bin/java
[root@anolis ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-2.an8_6.x86_64
[root@anolis ~]# ll /usr/bin/java
lrwxrwxrwx 1 root root 22 9月  22 16:04 /usr/bin/java -> /etc/alternatives/java
[root@anolis ~]# ll /etc/alternatives/java
lrwxrwxrwx 1 root root 73 9月  22 16:04 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.an8_6.x86_64/jre/bin/java
[root@anolis ~]# ll /usr/lib/jvm/
总用量 0
lrwxrwxrwx 1 root root  26 9月  22 16:04 java -> /etc/alternatives/java_sdk
lrwxrwxrwx 1 root root  32 9月  22 16:04 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0
lrwxrwxrwx 1 root root  40 9月  22 16:04 java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdk
drwxr-xr-x 7 root root 135 9月  22 16:04 java-1.8.0-openjdk-1.8.0.345.b01-1.an8_6.x86_64
lrwxrwxrwx 1 root root  34 9月  22 16:04 java-openjdk -> /etc/alternatives/java_sdk_openjdk
lrwxrwxrwx 1 root root  21 9月  22 16:04 jre -> /etc/alternatives/jre
lrwxrwxrwx 1 root root  27 9月  22 16:04 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx 1 root root  35 9月  22 16:04 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
lrwxrwxrwx 1 root root  51 9月  14 11:30 jre-1.8.0-openjdk-1.8.0.345.b01-1.an8_6.x86_64 -> java-1.8.0-openjdk-1.8.0.345.b01-1.an8_6.x86_64/jre
lrwxrwxrwx 1 root root  29 9月  22 16:04 jre-openjdk -> /etc/alternatives/jre_openjdk

查看java是否可用:javac

# javac
-bash: javac: command not found

错误原因:默认安装完只有运行环境,java安装目录下只有jre文件夹
安装开发环境dnf install java-1.8.0-openjdk-devel.x86_64
安装完可看到java安装目录下出现bin、lib等文件夹:

[root@anolis ~]# cd  /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.an8_6.x86_64/
[root@anolis java-1.8.0-openjdk-1.8.0.345.b01-1.an8_6.x86_64]# ll
总用量 184
-rw-r--r-- 1 root root   1522 9月  14 11:29 ASSEMBLY_EXCEPTION
drwxr-xr-x 2 root root   4096 9月  22 16:04 bin
drwxr-xr-x 3 root root    132 9月  22 16:04 include
drwxr-xr-x 4 root root     95 9月  22 16:04 jre
drwxr-xr-x 3 root root    144 9月  22 16:04 lib
-rw-r--r-- 1 root root  19274 9月  14 11:29 LICENSE
drwxr-xr-x 2 root root    204 9月  22 16:04 tapset
-rw-r--r-- 1 root root 157063 9月  14 11:29 THIRD_PARTY_README

再次输入javac说明安装成功

[root@anolis ~]# javac
用法: javac <options> <source files>
其中, 可能的选项包括:
  -g                         生成所有调试信息
  -g:none                    不生成任何调试信息
  -g:{lines,vars,source}     只生成某些调试信息
  -nowarn                    不生成任何警告
  -verbose                   输出有关编译器正在执行的操作的消息
  -deprecation               输出使用已过时的 API 的源位置
  -classpath <路径>            指定查找用户类文件和注释处理程序的位置
  -cp <路径>                   指定查找用户类文件和注释处理程序的位置
  -sourcepath <路径>           指定查找输入源文件的位置
  -bootclasspath <路径>        覆盖引导类文件的位置
  -extdirs <目录>              覆盖所安装扩展的位置
  -endorseddirs <目录>         覆盖签名的标准路径的位置
  -proc:{none,only}          控制是否执行注释处理和/或编译。
  -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
  -processorpath <路径>        指定查找注释处理程序的位置
  -parameters                生成元数据以用于方法参数的反射
  -d <目录>                    指定放置生成的类文件的位置
  -s <目录>                    指定放置生成的源文件的位置
  -h <目录>                    指定放置生成的本机标头文件的位置
  -implicit:{none,class}     指定是否为隐式引用文件生成类文件
  -encoding <编码>             指定源文件使用的字符编码
  -source <发行版>              提供与指定发行版的源兼容性
  -target <发行版>              生成特定 VM 版本的类文件
  -profile <配置文件>            请确保使用的 API 在指定的配置文件中可用
  -version                   版本信息
  -help                      输出标准选项的提要
  -A关键字[=值]                  传递给注释处理程序的选项
  -X                         输出非标准选项的提要
  -J<标记>                     直接将 <标记> 传递给运行时系统
  -Werror                    出现警告时终止编译
  @<文件名>                     从文件读取选项和文件名

查看环境变量

vi /etc/profile
在profile文件末尾查看如下内容:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-2.an8_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@anolis ~]# source /etc/profile
[root@anolis ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-2.an8_6.x86_64

二进制安装jdk1.8

上传jdk-8u11-linux-x64.tar.gz 安装包
解压jdk文件

tar -xzvf jdk-8u11-linux-x64.tar.gz -C /usr/local/

添加环境变量

echo 'export JAVA_HOME=/usr/local/jdk1.8.0_11' | sudo tee -a /etc/profile    
echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' | sudo tee -a /etc/profile 
echo 'export PATH=$PATH:$JAVA_HOME/bin' | sudo tee -a /etc/profile   

使变量立即生效

source /etc/profile  
# java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
[root@anolis ~]# 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 used
  -classpath <path>          Specify where to find user class files and annotation processors
  -cp <path>                 Specify where to find user class files and annotation processors
  -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 compilation is done.
  -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; 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 implicitly 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 profile
  -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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容