Linux系统之安装java开发环境

2023-11-12

一、java介绍

1.java简介

1.Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出,后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。
2.Java是一种通用的,基于类的,面向对象的编程语言。它是用于应用程序开发的计算平台。因此,Java是快速,安全和可靠的。

2.java的三大平台

  • Java SE:Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。

  • Java ME:Java 语言的(小型版),用于嵌入式消费类电子设备(基本淘汰)。

  • Java EE:Java 语言的(企业版),用于 Web 方向的网站开发。

3.java的主要特性

  • Java 语言是简单的
  • Java 语言是面向对象的
  • Java语言是分布式的
  • Java 语言是健壮的
  • Java 语言是体系结构中立的
  • Java语言是安全的
  • Java 语言是可移植的
  • Java 语言是解释型的
  • Java 是高性能的
  • Java 语言是多线程的
  • Java 语言是动态的

二、检查本地系统环境

1.检查系统版本

检查本地系统版本,本次实践使用的是centos7.6版本。

[root@jeven ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

2.检查系统内核版本

检查系统内核版本

[root@jeven ~]# uname -r 
6.1.8-1.el7.elrepo.x86_64

三、清空java环境

1.删除java目录

查询java所在位置

[root@jeven ~]# which java
/usr/bin/java

删除java

[root@jeven ~]# rm -rf /usr/bin/java
[root@jeven ~]# java -version
bash: java: command not found...

2.移除所有java相关包

卸载所有java相关的软件

 yum -y remove *java*

3.清空java环境变量

在/etc/profile等环境变量文件中,删除java相关环境变量。

四、使用yum安装java

1.搜索本地java软件版本

检查java是否安装

[root@jeven ~]# rpm -qa | grep java
[root@jeven ~]# 

搜索java的jdk版本

[root@jeven ~]# yum list | grep java-1.8.0-openjdk
java-1.8.0-openjdk.i686                  1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk.x86_64                1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-accessibility.i686    1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-accessibility.x86_64  1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-demo.i686             1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-demo.x86_64           1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-devel.i686            1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-devel.x86_64          1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-headless.i686         1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-headless.x86_64       1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-javadoc.noarch        1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-javadoc-zip.noarch    1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-src.i686              1:1.8.0.362.b08-1.el7_9       updates  
java-1.8.0-openjdk-src.x86_64            1:1.8.0.362.b08-1.el7_9       updates  

2.安装java

安装的版本为java-1.8.0-openjdk-devel.x86_64

yum install java-1.8.0-openjdk-devel.x86_64 -y

3.配置环境变量

在etc/profile中配置java环境

AVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.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


使java相关变量生效

[root@jeven ~]# source /etc/profile
[root@jeven ~]# 

4.查看java版本

查看java版本

[root@jeven lib]# java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-b08)
OpenJDK 64-Bit Server VM (build 25.362-b08, mixed mode)
[root@jeven lib]# 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

五、二进制包安装java

1.下载java软件包

java下载地址:https://www.oracle.com/java/technologies/downloads/#java8

在这里插入图片描述

[root@jeven jdk]# ls
jdk-8u202-linux-x64.tar.gz

2.解压jdk安装包

解压jkd软件的压缩包

[root@jeven jdk]# tar -xzf jdk-8u202-linux-x64.tar.gz 
[root@jeven jdk]# ls jdk
jdk1.8.0_202/               jdk-8u202-linux-x64.tar.gz  
[root@jeven jdk]# ls jdk1.8.0_202/
bin        include         jre  LICENSE  README.html  src.zip                             THIRDPARTYLICENSEREADME.txt
COPYRIGHT  javafx-src.zip  lib  man      release      THIRDPARTYLICENSEREADME-JAVAFX.txt

3.复制jdk的二进制文件

将jdk的二进制文件复制到/usr/local/目录下

[root@jeven ~]# cp -r /data/jdk/jdk1.8.0_202/ /usr/local/jdk/
[root@jeven ~]# ls /usr/local/jdk/
bin        include         jre  LICENSE  README.html  src.zip                             THIRDPARTYLICENSEREADME.txt
COPYRIGHT  javafx-src.zip  lib  man      release      THIRDPARTYLICENSEREADME-JAVAFX.txt

4.配置环境变量

在/etc/profile文件中,新增以下两行:

export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

使变量文件生效

source /etc/profile

5.查看java版本

查看java版本,检查是否安装成功。

[root@jeven ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

六、测试java安装环境

1.编辑test.java文件

[root@jeven jdk]# cat test.java 
public class test{
       public static void  main (String[] args) {
                      System.out.println("java test ok");
    }
}
[root@jeven jdk]# 

2.运行测试文件

运行测试文件,检查是否正确输出,正常输出打印内容,则java环境安装成功。

[root@jeven jdk]# javac test.java 
[root@jeven jdk]# java test
java test ok

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux系统之安装java开发环境 的相关文章

  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 设置 git 别名,但调用它会给出“找不到命令”

    我想在 git 中设置一个别名来计算存储库中的总行数 因此我进入 Git Bash 并输入以下内容 git config global alias linecount ls files z xargs 0 wc l 我输入命令后 没有出现错
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 测试 bash shell 脚本[重复]

    这个问题在这里已经有答案了 有人可以解释一下如何测试 bash shell 脚本吗 例如 我有一个 sh 文件 其中包含此代码 bin sh for file in txt do mv file basename file txt doc
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • Bash 中单行 while 循环的语法

    我无法找到分号和 或大括号的正确组合 我想这样做 但作为命令行中的一句 while 1 do foo sleep 2 done while true do foo sleep 2 done 顺便说一句 如果您在命令提示符下将其输入为多行 如

随机推荐

  • 机械革命深海幽灵z2学习电脑系统史

    目录 前言 第一次蓝屏 第一次接触重装系统 装Linux系统 Linux16 04版本与显卡1060不兼容问题 windows与linux双系统问题 Linux学习 售后 自己重装系统 换主板 没有我修不好的电脑 键盘故障 再次蓝屏 重装系
  • [精华]uniapp微信授权登录,

    转载一 微信授权登录 转载二 uniapp页面速成提效工具 uniapp uview ui 可视化 完全自由拖拽 一键生成flex代码网站 http aicode shagua wiki uni index html 十大特性 1 可视化
  • Unity屏幕坐标转UI局部坐标

    RectTransformUtility ScreenPointToLocalPointInRectangle https docs unity cn cn 2019 2 ScriptReference RectTransformUtili
  • 在C语言多维数组a[3][2]中的a[2]代表的是什么意思

    一开始我以为a 2 是等价与a 2 0 也就是第三行的第一个元素 后来发现错误 a 2 是等价与 a 2 其值是第二行的首地址 a 2 0 等价于 a 2 个人认为可以把二位数组的数组名理解成一个二维指针 解运算一次 放的是地址 行地址 解
  • 08:js逆向---压缩技术

    可以看到了变的参数只有一个 toke 接下来解决toke 直接搜索 通过window Rohr Opt reload函数加密 reqUrlAndParams是在上面生成的 进去函数里面看 iP reload function jv jv最初
  • Win10家庭版远程桌面工具RDP Wrapper

    由于win10家庭版官方不支持使用远程控制mstsc工具 所以使用RDP Wrapper可以解决该问题 软件环境如下 不止当前版本 经过验证在21H2版本上依旧可行 如果嫌弃阅读文章浪费时间可以直接下载打包好的压缩文件 直接替换就可以使用
  • C语言实现扫雷游戏(进阶篇)

    C语言实现扫雷游戏 基础篇 的链接在下面 https blog csdn net m0 73676323 article details 129357113https blog csdn net m0 73676323 article de
  • 【华为OD机试c++】优选核酸检测点【2022 Q4 A卷

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 张三要去外地出差 需要做核酸 需要在指定时间点前做完核酸 请帮他找到满足条件的核酸检测点 给出一组核酸检测点的距离和每个核酸检测点当前的人数 给
  • ​语义分割损失函数​

    这里面有几个损失函数 GitHub MichaelFan01 STDC Seg Source Code of our CVPR2021 paper Rethinking BiSeNet For Real time Semantic Segm
  • Hadoop学习笔记(1)

    原文 http www cnblogs com zjfstudio p 3859704 html Hadoop学习笔记 1 菜鸟入门 Hadoop是什么 先问一下百度吧 百度百科 一个分布式系统基础架构 由Apache基金会所开发 用户可以
  • 一文说清产品经理、项目经理、产品负责人的区别

    以下为译文 原文链接 https nealcabage com product vs project vs program management 太多的团队无法区分Product Manager Product Owner Program
  • SSD 之OP预留空间

    SSD上的OP指的是用户不可操作的容量 大小为实际容量减去用户可用容量 OP区域一般被用于优化操作如 WL GC和坏块映射等 OP一般分三层 见下图 第一层容量固定为SSD标称容量的7 37 这是因为标称容量采用千进制为单位 而NAND颗粒
  • 并行编程——OpenMP

    文章目录 并行机体系结构 并行机体系结构及通信机制 并行程序 设计方法 设计模型 openmp 基础 OpenMp简介 在VS中启用OpenMP OpenMp并行编程模型 OpenMp 存储模型 支持条件编译 并行化控制 编译制导 功能指令
  • 小扎亲自官宣Meta视觉大模型!自监督学习无需微调,多任务效果超OpenCLIP丨开源...

    萧箫 发自 凹非寺量子位 公众号 QbitAI 无需文字标签 完全自监督的Meta视觉大模型来了 小扎亲自官宣 发布即收获大量关注度 在语义分割 实例分割 深度估计和图像检索等任务中 这个名叫DINOv2的视觉大模型均取得了非常不错的效果
  • feign get方法参数是form提交方式

    使用feign调用服务端接口时如果服务端接口是get方式 并且采用form方式表达提交的时候需要使用 SpringQueryMap 注解 但是参数列表中只能使用一个 SpringQueryMap注解 多个只会有一个生效 服务端 被调用方 c
  • 全球及中国动脉导管未闭治疗设备行业渠道模式分析与需求前景预测报告2022版

    全球及中国动脉导管未闭治疗设备行业渠道模式分析与需求前景预测报告2022版 修订日期 2021年12月 搜索鸿晟信合研究院查看官网更多内容 2021年 全球动脉导管未闭治疗设备市场规模达到了 百万美元 预计2027年可以达到 百万美元 年复
  • 理事的三板斧-以项目部为例

    作为管理者来说 无非是理事 管人 这中间理事尤为重要 因为事理的不清楚 人肯定难管好 即使有个人魅力 队伍凝聚力强 事理的不对 也会事倍功半 长期的去看 团队也会出问题的 事理的清楚 我认为主要有三点 目标 流程 模板 目标清楚了 方向就不
  • 跨度计算算法

    int FindingSpans int inputArray int spans new int inputArray length for int i 0 i lt inputArray length i int span 1 int
  • 关于matplotlib及相关cmap参数的取值

    关于matplotlib及相关cmap参数的取值 在matplotlib中对于图片的显示有如下方法 这不是重点 其中有cmap binary 的参数 plt imshow imgs i reshape 28 28 cmap binary 或
  • Linux系统之安装java开发环境

    Linux系统之安装java开发环境 一 java介绍 1 java简介 2 java的三大平台 3 java的主要特性 二 检查本地系统环境 1 检查系统版本 2 检查系统内核版本 三 清空java环境 1 删除java目录 2 移除所有