欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一些常用Java命令及應(yīng)用總結(jié)

 更新時間:2025年04月24日 09:26:17   作者:foolishboy_w  
這篇文章主要介紹了一些常用Java命令及應(yīng)用的相關(guān)資料,詳細講解了如何使用這些命令來排查Cpu和內(nèi)存飆高的問題,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、Java常用命令

Java命令在我們的日常工作中還是挺重要的,以下截圖是JDK自帶的一些Java命令,本文將簡單介紹其中幾個最常用的。

1、javac

javac是Java編譯器命令,也是最基礎(chǔ)的命令,它用于將Java源代碼文件(.java)編譯為字節(jié)碼文件(.class)。用法如下:

javac HelloWorld.java

2、jar

jar是Java歸檔工具命令,用于打包Java類文件和其他相關(guān)文件到同一個Jar文件中或者解壓縮一個jar包。用法如下:

jar {c t x u }[ v f m e 0 M i ][-C 目錄]文件名...

其中{c t x u}這四個參數(shù)必須選其一。[v f m e 0 M i ]是可選參數(shù),文件名也是必須的。

-c 創(chuàng)建一個jar包
-t 顯示jar中的內(nèi)容列表
-x 解壓jar包
-u 添加文件到j(luò)ar包中
-f 指定jar包的文件名
-v 生成詳細的報造,并輸出至標(biāo)準(zhǔn)設(shè)備
-m 指定manifest.mf文件.(manifest.mf文件中可以對jar包及其中的內(nèi)容作一些一設(shè)置)
-0 產(chǎn)生jar包時不對其中的內(nèi)容進行壓縮處理
-M 不產(chǎn)生所有文件的清單文件(Manifest.mf)。這個參數(shù)與忽略掉-m參數(shù)的設(shè)置
-i 為指定的jar文件創(chuàng)建索引文件
-C 表示轉(zhuǎn)到相應(yīng)的目錄下執(zhí)行jar命令,相當(dāng)于cd到那個目錄,然后不帶-C執(zhí)行jar命令

3、java

java是Java運行命令,用于執(zhí)行Java字節(jié)碼文件。用法如下:

java HelloWorld
java -jar HelloWorld.jar	--運行HelloWorld.jar

4、javadoc

javadoc是Java文檔生成命令,用于從Java源代碼文件中提取注釋和生成HTML格式的API文檔。用法如下:

javadoc [options] [packagenames] [sourcefiles] [@files]

常用參數(shù)如下:
-d <directory>: 指定輸出目錄。
-sourcepath <pathlist>: 指定查找源文件的位置。
-classpath <pathlist>: 指定查找用戶類文件的位置。
-link <url>: 添加外部鏈接。
-version: 顯示版本信息。
-public: 僅顯示 public 類和成員。
-protected: 顯示 protected/public 類和成員(默認值)。
-package: 顯示 package/protected/public 類和成員。
-private: 顯示所有類和成員。
-help: 顯示命令行選項并退出。
-doclet <class>: 通過替代 doclet 生成輸出。
-docletpath <path>: 指定查找 doclet 類文件的位置。
-exclude <pkglist>: 指定要排除的程序包列表。
-subpackages <subpkglist>: 指定要遞歸加載的子程序包。
-bootclasspath <pathlist>: 覆蓋由引導(dǎo)類加載器所加載的類文件位置。
-source <release>: 提供與指定發(fā)行版的源兼容性。
-extdirs <dirlist>: 覆蓋所安裝擴展的位置。
-verbose: 輸出有關(guān) Javadoc 正在執(zhí)行的操作的信息。
-locale <name>: 要使用的區(qū)域設(shè)置。
-encoding <name>: 源文件編碼名稱。
-quiet: 不顯示狀態(tài)消息。
-J<flag>: 直接將 <flag> 傳遞到運行時系統(tǒng)。
-X: 輸出非標(biāo)準(zhǔn)選項的提要?

5、javap

javap是Java類文件反匯編命令,用于顯示Java字節(jié)碼文件中的信息。用法如下:

javap [options] 類名

常用參數(shù)如下:
-help:顯示幫助信息。
-version:顯示版本信息。
-v 或 -verbose:輸出附加信息。
-l:輸出行號和本地變量表。
-public:僅顯示公共類和成員。
-protected:顯示受保護的/公共類和成員。
-package:顯示程序包/受保護的/公共類 和成員(默認)。
-private:顯示所有類和成員。
-c:對代碼進行反匯編。
-s:輸出內(nèi)部類型簽名。
-sysinfo:顯示正在處理的類的系統(tǒng)信息(路徑、大小、日期、MD5散列)。
-constants:顯示最終常量。
-classpath <path>:指定查找用戶類文件的位置。
-bootclasspath <path>:覆蓋引導(dǎo)類文件的位置

6、jps

jps用于列出JVM進程的信息。用法如下:

jps [options] [hostid]

常用參數(shù)如下:
-l:顯示完整的包名和應(yīng)用程序主類名。
-m:顯示完整的包名、應(yīng)用程序主類名和虛擬機的啟動參數(shù)。
-v:顯示虛擬機的啟動參數(shù)和JVM命令行選項。
-q:只顯示進程ID,不顯示類名和主類名。

7、jstack

jstack用于生成Java應(yīng)用程序的線程堆棧跟蹤信息,常用來查看每個線程的狀態(tài)、調(diào)用棧及相關(guān)信息。用法如下:

jstack [option] pid

常用參數(shù)如下:
-F:當(dāng)普通jstack命令無法連接到JVM時,強制生成線程快照。使用該選項可能會終止目標(biāo)JVM。
-l:顯示鎖的附加信息,包括當(dāng)前線程持有的鎖以及等待的鎖。
-m:顯示混合模式的線程堆棧,即Java調(diào)用棧和本地C/C++代碼棧。如果懷疑本地方法(如JNI調(diào)用)可能導(dǎo)致了問題,可以使用此選項。

8、jmap

jmap命令用于生成Java堆轉(zhuǎn)儲文件并查看對象內(nèi)存占用情況的工具,常用來排查內(nèi)存泄漏、分析內(nèi)存占用問題以及分析JVM的垃圾收集器行為。用法如下:

jmap [options] <pid>

常用參數(shù)如下:
-heap:顯示Java堆內(nèi)存的詳細信息,包括堆大小、使用情況和垃圾收集器的相關(guān)信息。
-histo[:live]:顯示堆中對象的統(tǒng)計信息,如果指定了live子選項,則只計算活動的對象。
-clstats:打印類加載信息。
-finalizerinfo:顯示在F-Queue隊列等待Finalizer線程執(zhí)行finalizer方法的對象。
-dump:<dump-options>:生成堆轉(zhuǎn)儲快照,<dump-options>可以指定輸出格式和文件路徑。

示例:
jmap -dump:live,format=b,file=<filename> <pid>		--生成heap dump
jmap -histo[:live] <pid>		--查看對象歷史統(tǒng)計信息

二、Java命令應(yīng)用

Java命令可以用來排查Cpu、內(nèi)存飚高問題。以下為Cpu飚高的具體排查步驟:

1、使用ps或jps命令找到j(luò)ava進程pid

ps -ef|grep java
jps

2、使用top命令查看Cpu/內(nèi)存占用最高的線程id

top -Hp pid

3、使用jstack命令生成線程的堆棧信息文件

jstack pid > bak.stack

4、使用printf命令將線程id轉(zhuǎn)換為十六進制

 printf "%x\n" tid

5、查看生成的bak.stack堆棧文件,找到十六進制tid對應(yīng)的內(nèi)容

less bak.stack

6、分析生成的堆棧信息,查找占用CPU過高的線程對應(yīng)的代碼是做什么業(yè)務(wù)邏輯。在分析堆棧信息時,也可以查看線程狀態(tài)(如BLOCKED, WAITING, TIMED_WAITING, RUNNABLE),確定線程是在等待資源、在執(zhí)行同步塊還是在進行IO操作。根據(jù)這些信息,結(jié)合代碼邏輯,進行相應(yīng)的優(yōu)化。

ack堆棧文件,找到十六進制tid對應(yīng)的內(nèi)容

less bak.stack

6、分析生成的堆棧信息,查找占用CPU過高的線程對應(yīng)的代碼是做什么業(yè)務(wù)邏輯。在分析堆棧信息時,也可以查看線程狀態(tài)(如BLOCKED, WAITING, TIMED_WAITING, RUNNABLE),確定線程是在等待資源、在執(zhí)行同步塊還是在進行IO操作。根據(jù)這些信息,結(jié)合代碼邏輯,進行相應(yīng)的優(yōu)化。

(PS:當(dāng)線上出現(xiàn)問題時,首先要做的是業(yè)務(wù)快速止損恢復(fù),一般可以保留出現(xiàn)問題的實例,將流量切到新的健康的實例上,業(yè)務(wù)恢復(fù)之后再查看出現(xiàn)問題的實例,查出根因)

總結(jié)

到此這篇關(guān)于一些常用Java命令及應(yīng)用的文章就介紹到這了,更多相關(guān)常用Java命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot中如何使用Swagger詳解

    Spring Boot中如何使用Swagger詳解

    Swagger是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful風(fēng)格的Web服務(wù),這篇文章主要給大家介紹了關(guān)于Spring Boot中如何使用Swagger的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • java開發(fā)模式的深度研究

    java開發(fā)模式的深度研究

    下面小編就為大家?guī)硪黄钊肜斫鈐ava工廠模式。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-07-07
  • 學(xué)習(xí)SpringMVC——如何獲取請求參數(shù)詳解

    學(xué)習(xí)SpringMVC——如何獲取請求參數(shù)詳解

    本篇文章主要介紹了SpringMVC——如何獲取請求參數(shù)詳解,詳細的介紹了每種參數(shù)注解的用法。具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • 解決Spring配置文件中bean的property屬性中的name出錯問題

    解決Spring配置文件中bean的property屬性中的name出錯問題

    這篇文章主要介紹了解決Spring配置文件中bean的property屬性中的name出錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java錯誤:無效的源發(fā)行版:18解決辦法圖文詳解

    java錯誤:無效的源發(fā)行版:18解決辦法圖文詳解

    在Java開發(fā)中,如果你遇到錯誤: 無效的源發(fā)行版,這通常意味著你正在使用的Java編譯器(通常是javac)被配置為編譯一個比你的JDK 版本更高,這篇文章主要給大家介紹了關(guān)于java錯誤:無效的源發(fā)行版:18的解決辦法,需要的朋友可以參考下
    2024-08-08
  • SpringBoot2 task scheduler 定時任務(wù)調(diào)度器四種方式

    SpringBoot2 task scheduler 定時任務(wù)調(diào)度器四種方式

    這篇文章主要介紹了SpringBoot2 task scheduler 定時任務(wù)調(diào)度器四種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java的引用類型常用的四種方法

    Java的引用類型常用的四種方法

    這篇文章主要介紹了Java的引用類型常用的幾種方法,Java為引用類型專門定義了一個類Reference,它是引用對象的抽象基類,相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-06-06
  • SpringBoot的三大開發(fā)工具小結(jié)

    SpringBoot的三大開發(fā)工具小結(jié)

    本文主要介紹了SpringBoot的三大開發(fā)工具,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Java線程啟動為什么要用start()而不是run()?

    Java線程啟動為什么要用start()而不是run()?

    這篇文章主要介紹了線程啟動為什么要用start()而不是run()?下面文章圍繞start()與run()的相關(guān)資料展開詳細內(nèi)容,具有一定的參考價值,西藥的小火熬版可以參考一下,希望對你有所幫助
    2021-12-12
  • java應(yīng)用程序如何自定義log4j配置文件的位置

    java應(yīng)用程序如何自定義log4j配置文件的位置

    這篇文章主要介紹了java應(yīng)用程序如何自定義log4j配置文件的位置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論