`
chenyubo
  • 浏览: 79792 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

获取运行中的JVM系统属性

    博客分类:
  • Java
阅读更多
获取你的JVM系统环境属性
  Java的"Writer once,run anywhere"口号的确让我们领略到了Java的神奇,也成为SUN宣传Java的金字招牌。拂开这层神秘的面纱,我们不难发现其核心是运行在各种操作系统中的JVM(Java虚拟机)在发挥着重要的作用,Java虚拟机允许我们的纯java类可以达到"一次编写,到处运行"。每个安装在不同操作系统的Java虚拟机负责着Java程序与操作系统之间的工作,因此每个Java虚拟机的系统环境属性是不同的,我们可以通过访问Java虚拟机的系统属性来获知一些关于当前操作系统的一些基本信息,这些信息的价值有时是非常重要的。
  
  标准SDK中提供了java.lang.System类,这个类定义了一个对系统设备(包括系统属性和系统输入输出数据流)的、与平台无关的接口。方法getProperties()返回一个java.util.Property对象,对象中存放了JVM的系统属性列表,我们可以通过这个列表来得到java虚拟机的一些系统属性。
  
  下面的例子中,将介绍如何实现获取JVM系统属性的功能
  
  类设计
  设计SystemInfo类,用来获取系统的属性,并打印输出到标准输出。首先我们将设计一个getSystemProperty()方法,该方法将调用java.lang.System.getProperties()返回一个系统属性列表,在main()函数中,将系统属性的关键字和属性描述放到一个Hashtable结构中,通过遍历这个结构,获取系统属性值。
//package com.cn-java;
  
  import java.lang.System;
  import java.util.Properties;
  import java.util.Hashtable;
  import java.util.Enumeration;
  
  public class SystemInfo{
    //存放JVM获得的系统属性
    static private Properties _property; 
    
    //Main function
    public static void main(String[] args){
        getSystemProperty();
        
        Hashtable hashKey;
        hashKey=new Hashtable();
        //将系统信息的关键字和标题放到hashtable
        hashKey.put("java.home",            "Java安装目录     ");
        hashKey.put("java.class.path",         "装载类的路径     ");
        hashKey.put("java.specification.version",    "Java API 规范的版本  ");
        hashKey.put("java.specification.vendor",    "Java API 规范的厂商  ");
        hashKey.put("java.specification.name",     "Java API 规范的名称  ");
        hashKey.put("java.version",           "Java API 实现的版本  ");
        hashKey.put("java.vendor",           "Java API 实现的厂商  ");
        hashKey.put("java.vendor.url",         "Java API 规范厂商的URL");
        hashKey.put("java.vm.specification.version",  "Java虚拟机规范的版本 ");
        hashKey.put("java.vm.specification.vendor",   "Java虚拟机规范的厂商 ");
        hashKey.put("java.vm.specification.name",    "Java虚拟机规范的名称 ");
        hashKey.put("java.vm.version",         "Java虚拟机实现的版本 ");
        hashKey.put("java.vm.vendor",          "Java虚拟机实现的厂商 ");
        hashKey.put("java.vm.name",           "Java虚拟机实现的名称 ");
        hashKey.put("java.class.version",        "Java类文件格式的版本 ");
        hashKey.put("os.name",             "主机操作系统的名称  ");
        hashKey.put("os.arch",             "主机操作系统的体系结构");
        hashKey.put("os.version",            "主机操作系统的版本  ");
        hashKey.put("file.separator",          "平台目录的分隔符   ");
        hashKey.put("path.separator",          "平台路径的分隔符   ");
        hashKey.put("line.separator",          "平台文本行的分隔符  ");
        hashKey.put("user.name",            "当前用户的帐户名称  ");
        hashKey.put("user.home",            "当前用户的根目录   ");
        hashKey.put("user.dir",             "当前工作目录     ");
  
        
        Enumeration enum;
        String propertyKey;
        enum=hashKey.keys();
        while(enum.hasMoreElements()){
            propertyKey=(String)enum.nextElement();             
  
   System.out.println((String)hashKey.get(propertyKey)
  +":"+_property.getProperty(propertyKey));
        }                        
    }
    /**
     * 获得系统属性列表
     * @return Properties
    */
    static public Properties getSystemProperty(){
        _property=System.getProperties();
        return _property;
    }
  }
分享到:
评论

相关推荐

    在Java中获取系统属性.doc

    在Java编程中,获取系统属性是一项重要的任务,它允许开发者获取关于操作系统、JVM以及用户环境的详细信息。Java提供了一个名为`Properties`的类,它继承自`Dictionary`,进一步扩展了`Hashtable`,用于处理键值对,...

    详解Java获取环境变量及系统属性的方法

    系统属性则是Java运行时环境(JRE)提供的、关于Java虚拟机(JVM)及其配置的属性信息。在Java中,我们通常使用System类提供的方法来获取这些信息。 获取环境变量的方法主要有两种。第一种是使用System.getEnv()...

    一个jvm启动多个springboot服务

    在Java世界中,JVM(Java虚拟机)是运行所有Java应用程序的基础,它为每个应用程序提供了一个独立的运行环境。Spring Boot是一个简化Spring应用开发的框架,它通过提供默认配置和starter项目,使得构建微服务变得...

    java获取系统参数

    在Java编程中,获取系统参数是一项基本任务,用于了解运行Java程序的环境信息。Java提供了`java.lang.System`类的`getProperties()`方法来获取这些信息。这个方法返回一个`Properties`对象,该对象包含了关于Java...

    JVM调优篇.pdf

    2. 扩展类加载器(Extension ClassLoader):负责加载JAVA_HOME\lib\ext目录中的,或通过java.ext.dirs系统变量指定路径中的类库。 3. 应用程序类加载器(Application ClassLoader):负责加载用户路径(classpath)...

    JVM技术,反射与动态代理

    它允许程序在运行时获取类的信息(如类名、属性、方法等),并动态调用方法或访问属性。反射的应用场景包括: 1. 动态创建对象:通过Class类的newInstance()方法创建对象。 2. 动态调用方法:通过Method类的invoke...

    Java获取自身运行相关信息.rar

    "Java获取自身运行相关信息"的主题涵盖了如何使用Java内置的类和方法来获取关于Java虚拟机(JVM)以及相关系统属性的详细信息。下面将详细介绍这些知识点: 1. **Java虚拟机名(JVM Name)**: 通过`java.lang....

    jvm内存参数调优

    其中`libname`为本地代理库文件名,如`hprof`,可用于获取JVM的运行情况,包括CPU、内存、线程等运行数据,并可以输出到指定文件中。`options`是传递给本地库的参数,多个参数间用逗号分隔。在不同的操作系统上,...

    jvm常用命令工具

    **用途**:列出当前系统中正在运行的所有HotSpot虚拟机进程,并显示每个进程的PID及主类名。 **命令格式**: ``` jps [options] [hostid] ``` **执行示例**: ``` jps -l ``` **常用参数**: - `-l`:输出主类的...

    java 获取程序运行环境的信息

    Java提供了丰富的类库和方法来获取这些信息,主要包括JVM(Java虚拟机)信息、操作系统信息、系统属性以及类路径等。下面将详细阐述如何利用Java获取这些信息。 1. **JVM信息**: - 使用`java.lang.RuntimeMXBean`...

    揭秘Java虚拟机-JVM设计原理与实现

    9. **编译OpenJDK**:书中可能涵盖源码获取、配置环境、编译过程以及理解OpenJDK源码的细节,帮助读者深入理解JVM内部实现。 10. **性能优化**:通过分析JVM的各种监控工具(如JConsole、VisualVM等),学习如何...

    JVM问题诊断常用命令

    它可以用来查看Java系统的属性设置和JVM启动时的命令行参数,对于理解程序运行环境和进行故障排查非常有用。 **基本用法**: ``` jinfo [option] jinfo [option] <executable> jinfo [option] [server-id@] ``` ...

    java版获取本地系统信息的源码工程

    在Java编程语言中,获取本地系统信息是一项常用的任务,它涉及到对JVM(Java虚拟机)的状态监控以及操作系统级别的信息查询。本项目提供了一个源码示例,展示了如何使用Java来读取这些信息。以下是对这个源码工程的...

    IBM JVM参数选项

    1. **-D**<property>=<value>: 设置系统属性。 - 示例:`-Dfile.encoding=UTF-8` - **-Dcom.ibm.dbgmalloc**: 启用此参数以获取更详细的堆内存分配信息。 - **-Dcom.ibm.jsse2.renegotiate**: 控制Java安全套接层...

    JVM学习笔记(一)

    - `-Dproperty=value`:设置系统属性,可以在程序中使用`System.getProperty(“”)`来获取。 - `-verbose`:显示冗余信息。 - `-verbose:class`:显示关于每一个类加载器的信息。 - `-verbose:gc`:报告每一个GC...

    java获取当前系统信息

    在Java编程语言中,获取当前系统的详细信息是一项基础但重要的技能,它可以帮助开发者更好地理解运行环境,对于调试、日志记录以及系统兼容性检查尤为重要。本文将深入解析如何利用Java内置的`System`类和`...

    关于java获取操作系统信息

    通过上述内容可以看出,Java提供了丰富的系统属性来帮助开发者获取运行时环境的相关信息。这些信息对于调试代码、适配不同操作系统以及优化程序性能都极为重要。开发人员可以根据需要选择合适的系统属性来获取所需的...

    jvm启动参数大全

    Java虚拟机(JVM)是Java程序运行的基础,它负责解析字节码并执行Java代码。在开发和调优Java应用时,了解和使用JVM启动参数至关重要。这些参数可以调整JVM的行为,优化内存分配、垃圾收集、线程设置等。以下是一些...

    java获取系统参数规格

    在Java编程语言中,开发人员经常需要访问与运行环境相关的各种系统参数,这些参数对于调试、配置以及确保程序兼容性等方面至关重要。通过Java内置的方法,我们可以轻松地获取一系列关于Java运行时环境(JRE)及操作...

Global site tag (gtag.js) - Google Analytics