Java環境配置與常見問題

来源:https://www.cnblogs.com/subsea/archive/2023/08/31/17668880.html
-Advertisement-
Play Games

一、 前言 在日程辦公中Java環境搭建已經是非常基礎且重要的一環,許多應用如tomcat、weblogic、zookeeper、kafka、Elasticsearch、hadoop、CDH等等都需要依賴它。 Java環境的搭建也比較簡單,在Linux系統上有兩種方法:一種是直接安裝編譯打包好的軟體 ...


 

一、  前言

在日程辦公中Java環境搭建已經是非常基礎且重要的一環,許多應用如tomcat、weblogic、zookeeper、kafka、Elasticsearch、hadoop、CDH等等都需要依賴它。

Java環境的搭建也比較簡單,在Linux系統上有兩種方法:一種是直接安裝編譯打包好的軟體包;另一種是下載歸檔壓縮包解壓手動安裝。

本文就linux上搭建Java環境做一個分享,Java版本選用廣泛使用的8版本

 

開始之前,先科普幾個基本概念

● Java是一門編程語言,是由Sun Microsystems公司發佈,目前被Oracle收購,市場上也有其他公司或者其他版本

● JDK是Java 平臺標準版開發工具包,常說的準備Java環境就是安裝JDK。JDK 是一個開發環境,用於使用 Java 編程語言構建應用程式、小程式和組件。JDK 包括用於開發和測試用 Java 編程語言編寫併在 Java 平臺上運行的程式的工具

● Java目前發行版本官方稱為JavaSE(Java PlatformStandard Edition)。主流版本號是20\17\11\8。使用比較廣泛的版本是8

● JRE:Java Runtime Environment,Java運行環境。 包含JVM和解釋器,完整的Java運行環境

● JVM:Java Virtual Machine,Java虛擬機。 使用軟體在不同操作系統中,模擬相同的環境(java實現跨平臺的根本原因

 

相關參考:

什麼是Java,為什麼需要它?

JDK和JRE的安裝 - 知乎 (zhihu.com)

JRE 8 自述文件 (oracle.com)

JDK 8 自述文件 (oracle.com)

二、  環境準備和下載軟體包

環境機器:

測試環境

操作系統

網路

虛擬機

Centos7.9

有外網

虛擬機

Ubuntu22

有外網

虛擬機

Kylinosv10

有外網

 

相關下載:

● 進入下載頁面、註冊/登錄Oracle賬戶

創建賬戶:Oracle | 創建帳戶

下載地址:Java Downloads | Oracle 中國(需要註冊下Oracle賬戶才能下載)

● 下載對應版本

 

● Java8更新說明:整合的 JDK 8 發行說明 (oracle.com)

 

三、  方法一:使用軟體包安裝

官網提供了RPM包,紅帽體系操作系統可以直接下載rpm包進行安裝

1、  Centos7安裝jdk8

#官網下載jdk-rpm文件
https://www.oracle.com/cn/java/technologies/downloads/

#rpm安裝
rpm -ivh jdk-8u381-linux-x64.rpm

#查詢安裝位置
rpm -qa | grep jdk
#jdk-1.8-1.8.0_381-9.x86_64

#添加環境變數
#JAVA_HOME的路徑設置/usr/java/default
cat >>/etc/profile<<OVER
export JAVA_HOME=/usr/java/default
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
OVER
source /etc/profile
echo $JAVA_HOME

#驗證
java -version && jps

 

2、  Kylinosv10安裝jdk8

也是紅帽體系、同Centos7安裝一樣

 

3、  Ubuntu22安裝jdk8(openjdk)

由於Oracle官方沒有發佈Java8版本.deb安裝包,所以軟體包安裝只能安裝openjdk8

補充:Openjdk是開源產品,源碼和維護Oracle也參與了,滿足Java運行環境

參考文檔:Ubuntu下快速安裝JDK並設置JAVA_HOME - 公眾號-測試生財 - 博客園 (cnblogs.com)

 

#Ubuntu下載jdk-deb文件
https://packages.ubuntu.com/

#Openjdk安裝
apt install openjdk-8-jdk

#查詢安裝位置
dpkg -l | grep openjdk
dpkg -L | grep openjdk-8-jdk
update-alternatives --display java
update-alternatives --config java
#/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

#設置環境變數
#由上可知/usr/lib/jvm/java-8-openjdk-amd64是Java主目錄
#將JAVA_HOME配置/usr/lib/jvm/java-8-openjdk-amd64
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
EOF
source /etc/profile
echo $JAVA_HOME

#驗證
java -version && jps

 

四、  方法二:使用歸檔壓縮包安裝

壓縮包安裝方法適用於各linux系統,所以就不分開舉例了

以下以麒麟系統為演示

#下載jdk壓縮包
https://www.oracle.com/cn/java/technologies/downloads/

#創建一個/usr/java目錄然後解壓壓縮包內容
mkdir -pv /usr/java
tar -zxvf jdk-8u381-linux-x64.tar.gz -C /usr/java/
ls /usr/java/
ln -sf /usr/java/jdk1.8.0_381 /usr/java/default

# 修改系統環境變數
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/java/default
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
EOF
source /etc/profile
echo $JAVA_HOME

#測試是否生效
java -version && jps

 

五、  常見問題

1、  沒有jar命令怎麼操作

#查找jar
cd / && find -name 'jar'
#/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/bin/jar

#軟連接到/usr/bin 

ln -sf /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/bin/jar /usr/bin/jar

2、  如何替換jar包圖片

#先把jar包圖片解壓
jar xf dataService-1.0.0.jar BOOT-INF/classes/static/img/logo.png

#替換圖片
rz 
xxx.png

#替換圖片後再歸檔更新jar包
jar uf dataService-1.0.0.jar BOOT-INF/classes/static/img/logo.png

#重啟jar包的程式
jar uf dataService-1.0.0.jar BOOT-INF/classes/static/img/logo.png
sh ./service.sh restart
作者: 博客園-李宗盛 如果覺得博主的文章對你有幫助,麻煩動動小手、點贊、評論、您的鼓勵是我最大的動力!!! 出處: https://home.cnblogs.com/u/subsea/ 博客園主頁:https://www.cnblogs.com/subsea/ CSDN主頁:https://blog.csdn.net/SUBSEA123/
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # 第二章——python基礎語法1: ## 1、輸入和輸出 ### a、使用print()進行列印(輸出)。 ``` print('hello,python') print('hello,world',end='') ``` - pritnt)(輸出內容後,預設會換行。要使其不換行,**則使用pr ...
  • `Matplotlib` 庫是一個用於數據可視化和繪圖的 Python 庫。它提供了大量的函數和類,可以幫助用戶輕鬆地創建各種類型的圖表,包括直方圖、箱形圖、散點圖、餅圖、條形圖和密度圖等。 使用 `Matplotlib` 的過程中,遇到的難點並不在於繪製各類的圖形,因為每種圖形都有其對應的API。 ...
  • 本文在瞭解netty核心組件的前提下,進一步瞭解組件如何在整個伺服器啟動過程如何被創建,如何組件之間配合來使用。首先也是先瞭解下大概服務端的啟動過程,並且在瞭解過程中我們帶著自己的問題去在學習過程中探尋答案 ...
  • 最近做了個脫敏的需求,要對系統中的敏感信息,如手機號、車牌號、身份證號、銀行卡號等進行脫敏顯示。 效果類似下麵這樣: ![](https://images.zwwhnly.com/picture/2023/image-20230829095822435.png) 簡單來說,就是對敏感信息中的某幾位進 ...
  • ### 歡迎訪問我的GitHub > 這裡分類和彙總了欣宸的全部原創(含配套源碼):[https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) ### 本篇概覽 - 本篇是《java與es8實戰》系列的第五 ...
  • ## 前言 眾所周知,C#中有兩種類型變數:那就是**值類型**和**引用類型**。對於值類型而言,copy就相當於是全盤複製了,真正的實現了複製,屬於**深拷貝**;而對於引用類型而言,一般的copy只是**淺拷貝**,只是copy到了引用對象的地址,相當於值傳遞了一個引用指針,==新的對象通過地 ...
  • 上一章節主要介紹了RocketMQ基本介紹和前期準備,以及如何創建生產者。那這一章節主要介紹一下消費端的實現、如何發佈消費端,以及遇到的坑怎麼去解決。 ...
  • 本地配置: 1.進入“程式”,然後點“啟用或關閉Windows功能” 2.萬維網服務勾選 伺服器IIS配置: IIS伺服器的搭建 IIS全稱Internet Information Service,中文名:Internet信息服務,專用於微軟操作系統平臺,相容微軟的各項Web技術,尤其是ASP.NE ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...