最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA如何獲取jvm和操作系統(tǒng)相關(guān)信息

 更新時(shí)間:2022年10月18日 16:44:37   作者:程序猿的代碼  
這篇文章主要介紹了JAVA獲取jvm和操作系統(tǒng)相關(guān)信息,使用Java自帶的類進(jìn)行獲取系統(tǒng)運(yùn)行的相關(guān)信息,在這整理記錄分享一下,需要的朋友可以參考下

 什么是JVM

JVM是JavaVirtualMachine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。 主流虛擬機(jī)

背景

今日搬磚??時(shí)需要獲取系統(tǒng)運(yùn)行時(shí)間、版本號(hào)等相關(guān)信息,使用Java自帶的類進(jìn)行獲取系統(tǒng)運(yùn)行的相關(guān)信息,在這整理記錄分享一下,感興趣的小伙伴可以自己嘗試嘗試。

Jvm

首先獲取jvm相關(guān)信息,包含jvm的名稱、版本號(hào)、啟動(dòng)時(shí)間、運(yùn)行時(shí)間、環(huán)境變量、進(jìn)程id等等

public class Test {
    public static void main(String[] args) {
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        // jvmName
        System.out.printf("jvmName: %s %n", runtimeMXBean.getVmName());
        // jvmVersion
        System.out.printf("jvmVersion: %s %n", runtimeMXBean.getVmVersion());
        // jvmVendor
        System.out.printf("jvmVendor: %s %n", runtimeMXBean.getVmVendor());
        // startTime 使用hutool中DateUtil進(jìn)行轉(zhuǎn)換
        long startTime = runtimeMXBean.getStartTime();
        System.out.printf("startTime: %s %n", DateUtil.date(startTime).toString());
        // updateTime
        long uptime = runtimeMXBean.getUptime();
        System.out.printf("updateTime: %s %n", DateUtil.formatBetween(uptime, BetweenFormater.Level.SECOND));
        // classPath
        System.out.printf("classPath: %s %n", runtimeMXBean.getClassPath());
        // systemProperties
        System.out.printf("jvmName: %s %n", runtimeMXBean.getSystemProperties());
        // bootClassPath
        System.out.printf("bootClassPath: %s %n", runtimeMXBean.getBootClassPath());
        // processId
        System.out.printf("processId: %s %n", runtimeMXBean.getName().split("@")[0]);
    }
}

還可以獲取JVM內(nèi)存相關(guān)信息,例如堆內(nèi)存。

public class Test {
    public static void main(String[] args) {
        MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
        MemoryUsage heapMemoryUsage = memoryMXBean.getHeapMemoryUsage();
        // heapMemoryUsed
        System.out.printf("heapMemoryUsed: %d MB %n", heapMemoryUsage.getUsed()/1024/1024);
        // heapMemoryMax
        System.out.printf("heapMemoryMax: %d MB %n", heapMemoryUsage.getMax()/1024/1024);
        // heapMemoryCommitted
        System.out.printf("heapMemoryCommitted: %d MB %n", heapMemoryUsage.getCommitted()/1024/1024);
        MemoryUsage nonHeapMemoryUsage = memoryMXBean.getNonHeapMemoryUsage();
        // nonHeapMemoryUsed
        System.out.printf("nonHeapMemoryUsed: %d MB %n", nonHeapMemoryUsage.getUsed()/1024/1024);
        // nonHeapMemoryMax
        System.out.printf("nonHeapMemoryMax: %d MB %n", nonHeapMemoryUsage.getMax()/1024/1024);
        // nonHeapMemoryCommitted
        System.out.printf("nonHeapMemoryCommitted: %d MB %n", nonHeapMemoryUsage.getCommitted()/1024/1024);
    }
}

獲取JDK相關(guān)信息。包含jdk的版本、安裝路徑、當(dāng)前運(yùn)行jar包路徑、運(yùn)行jar文件名等。

public class Test {
    public static void main(String[] args) {
        // jdkVersion
        System.out.printf("jdkVersion: %s %n", System.getProperty("java.version"));
        // java_home
        System.out.printf("java_home: %s %n", System.getProperty("java.home"));
        // jar包路徑
        String path = System.getProperty("java.class.path");
        int firstIndex = path.lastIndexOf(System.getProperty("path.separator")) + 1;
        int lastIndex = path.lastIndexOf(File.separator) + 1;
        String jarPath = path.substring(firstIndex, lastIndex);
        System.out.printf("jarPath: %s %n", jarPath);
        // 當(dāng)前運(yùn)行jar文件名
        String jarName = path.substring(lastIndex);
        System.out.printf("jarName: %s %n", jarName);
    }
}

獲取java虛擬機(jī)線程信息,包含線程的阻塞時(shí)間、次數(shù)、線程的堆棧信息等等。

public class Test {
    public static void main(String[] args) {
        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
        // ThreadCount
        System.out.printf("ThreadCount: %d %n", threadMXBean.getThreadCount());
        // AllThreadIds
        System.out.printf("AllThreadIds: %s %n", threadMXBean.getAllThreadIds());
        // TotalStartedThread
        System.out.printf("TotalStartedThread: %d %n", threadMXBean.getTotalStartedThreadCount());
        // DaemonThread
        System.out.printf("DaemonThread: %d %n", threadMXBean.getDaemonThreadCount());
        // PeakThread
        System.out.printf("PeakThread: %d %n", threadMXBean.getPeakThreadCount());
        // ThreadInfo
        System.out.printf("ThreadInfo: %s %n", threadMXBean.getThreadInfo(threadMXBean.getAllThreadIds()));
    }
}

獲取java虛擬機(jī)類加載相關(guān)信息。

public class Test {
    public static void main(String[] args) {
        ClassLoadingMXBean classLoadingMXBean = ManagementFactory.getClassLoadingMXBean();
        // LoadedClassCount
        System.out.printf("LoadedClassCount: %d %n", classLoadingMXBean.getLoadedClassCount());
        // TotalLoadedClassCount
        System.out.printf("TotalLoadedClassCount: %d %n", classLoadingMXBean.getTotalLoadedClassCount());
        // UnloadedClassCount
        System.out.printf("UnloadedClassCount: %d %n", classLoadingMXBean.getUnloadedClassCount());
    }
}

操作系統(tǒng)

獲取操作系統(tǒng)以及主機(jī)硬件信息,包含系統(tǒng)名稱、版本、物理內(nèi)存、可用內(nèi)存等等。

public class Test {
    public static void main(String[] args) {
        // 系統(tǒng)版本
        OperatingSystemMXBean operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactoryHelper.getOperatingSystemMXBean();
        // osName
        System.out.printf("osName: %s %n", operatingSystemMXBean.getName());
        // Arch
        System.out.printf("Arch: %s %n", operatingSystemMXBean.getArch());
        // Version
        System.out.printf("Version: %s %n", operatingSystemMXBean.getVersion());
        // 物理內(nèi)存
        long totalPhysicalMemorySize = operatingSystemMXBean.getTotalPhysicalMemorySize()/1024/1024/1024;
        // totalPhysicalMemorySize
        System.out.printf("totalPhysicalMemorySize: %d GB %n", totalPhysicalMemorySize);
    }
}

到此這篇關(guān)于JAVA獲取jvm和操作系統(tǒng)相關(guān)信息的文章就介紹到這了,更多相關(guān)JAVA獲取jvm信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用SpringBoot簡(jiǎn)單實(shí)現(xiàn)一個(gè)蘋果支付的場(chǎng)景

    使用SpringBoot簡(jiǎn)單實(shí)現(xiàn)一個(gè)蘋果支付的場(chǎng)景

    這篇文章主要為大家詳細(xì)介紹了如何在Spring?Boot項(xiàng)目中集成Apple?Pay功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • Spring事務(wù)管理之如何處理刪除操作與事務(wù)回滾

    Spring事務(wù)管理之如何處理刪除操作與事務(wù)回滾

    在實(shí)際開(kāi)發(fā)中,事務(wù)管理是保證數(shù)據(jù)一致性的核心機(jī)制之一,本文將通過(guò)一個(gè)實(shí)際案例,詳細(xì)分析Spring事務(wù)中的刪除操作與回滾機(jī)制,并提供優(yōu)化方案,需要的可以參考下
    2025-04-04
  • Java web過(guò)濾器驗(yàn)證登錄防止未登錄進(jìn)入界面

    Java web過(guò)濾器驗(yàn)證登錄防止未登錄進(jìn)入界面

    這篇文章主要介紹了Java web過(guò)濾器驗(yàn)證登錄防止未登錄進(jìn)入界面,在一些系統(tǒng)中經(jīng)??梢杂玫酱斯δ?,對(duì)java web 驗(yàn)證登錄知識(shí)感興趣的朋友一起看下吧
    2016-08-08
  • springboot集成swagger過(guò)程解析

    springboot集成swagger過(guò)程解析

    這篇文章主要介紹了springboot集成swagger過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • SpringBoot整合高德地圖天氣查詢的全過(guò)程

    SpringBoot整合高德地圖天氣查詢的全過(guò)程

    這篇文章主要給大家介紹了關(guān)于SpringBoot整合高德地圖天氣查詢的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用springboot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 詳解JAVA中priorityqueue的具體使用

    詳解JAVA中priorityqueue的具體使用

    這篇文章主要介紹了詳解JAVA中priorityqueue的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • SpringBoot整合DeepSeek實(shí)現(xiàn)AI對(duì)話功能

    SpringBoot整合DeepSeek實(shí)現(xiàn)AI對(duì)話功能

    本文介紹了如何在SpringBoot項(xiàng)目中整合DeepSeek API和本地私有化部署DeepSeekR1模型,通過(guò)SpringAI框架簡(jiǎn)化了人工智能模型的集成,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-02-02
  • Java項(xiàng)目打包部署之部署jar包和war包

    Java項(xiàng)目打包部署之部署jar包和war包

    我們?cè)陂_(kāi)發(fā)環(huán)境部署項(xiàng)目一般通過(guò)ideal將項(xiàng)目打包成包,然后連接linux服務(wù)器,這篇文章主要給大家介紹了關(guān)于Java項(xiàng)目打包部署之部署jar包和war包的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • mybatis新增save結(jié)束后自動(dòng)返回主鍵id詳解

    mybatis新增save結(jié)束后自動(dòng)返回主鍵id詳解

    這篇文章主要介紹了mybatis新增save結(jié)束后自動(dòng)返回主鍵id詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 用Java實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能

    用Java實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了用Java實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論

准格尔旗| 绥中县| 鄄城县| 阳江市| 五常市| 米易县| 江达县| 长顺县| 台州市| 涡阳县| 高青县| 榆树市| 哈尔滨市| 色达县| 麦盖提县| 永城市| 祁阳县| 平昌县| 台南县| 垣曲县| 黄冈市| 凤山市| 托克逊县| 定州市| 山东| 昂仁县| 西贡区| 大竹县| 来凤县| 武川县| 石泉县| 江达县| 寻乌县| 师宗县| 聊城市| 通化市| 贵阳市| 建平县| 佳木斯市| 南开区| 长丰县|