`
Dead_knight
  • 浏览: 1200945 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
752c8642-b795-3fe6-946e-a4e845bffdec
Spring Securi...
浏览量:240190
33caa84e-18a6-3036-a82b-6e2106a4de63
clojure专题
浏览量:48914
E17ca077-44df-3816-a3fe-471c43f6e1e5
WebLogic11g
浏览量:236872
社区版块
存档分类
最新评论

获取系统属性值

阅读更多
一、通过System.getProperties()获取系统常用属性:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.lang.System;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Hashtable;
import java.util.Enumeration;
import java.util.StringTokenizer;

public class SystemInfo
{
private static Properties _property;


public static void main(String[] a)
{
_property=System.getProperties();

Hashtable hashKey;
hashKey=new 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", "Java虚拟机规范的厂商");
hashKey.put("user.name", "当前用户的帐户名称");
hashKey.put("user.home", "当前用户的根目录");
hashKey.put("user.dir", "当前工作目录");
Enumeration enum = hashKey.keys();
String propertyKey;
while(enum.hasMoreElements())
{
propertyKey=(String)enum.nextElement();
System.out.println((String)hashKey.get(propertyKey)+":"+_property.getProperty(propertyKey));
}
System.out.println(getComputer());
System.out.println(getIpAddress());
}

    /**
    获取电脑名称
     */
public static String getComputer()
{
String hostName="" ,ip = "";
try
{
ip = InetAddress.getLocalHost().toString();
StringTokenizer tok = new StringTokenizer(ip, "/");
hostName = tok.nextToken();
}
catch (Exception e)
{
e.printStackTrace();
}
return hostName;
}

    /**
    获取IP地址
     */
public static String getIpAddress()
{
String hostName = "";
String ip = "";
try
    {
ip = InetAddress.getLocalHost().toString();
StringTokenizer tok = new StringTokenizer(ip, "/");
hostName = tok.nextToken();
ip = tok.nextToken();
    }
catch (Exception e)
{
e.printStackTrace();
}
    return ip;

}

}

二、由于需求要求获取unix环境下的进程信息,故需要使用Runtime来解决,方案如下:
1.通过编写unix中的shell脚本,如monitor.sh内容:
#!/bin/bash
log_home=/export/home/bea/imep/monitor/imep.log
date +"%Y-%m-%d-%H:%M:%S" > $log_home
ps -ef | grep java >> $log_home
该脚本用于将ps -ef | grep java(当前系统java进程信息)打印的内容重定向至/export/home/bea/imep/monitor/imep.log文件下

2.使用JAVA的Runtime类执行该shell脚本
public void runUnixShell()
{
try
{
Process process = Runtime.getRuntime().exec(“/export/home/bea/imep/monitor/monitor.sh”);  
process.waitFor();
}catch(Exception e)
{
e.printStackTrace();
}
}
而后对此日志文件export/home/bea/imep/monitor/imep.log
进行解析。

3.方法很多,可以更深入研究(可以直接解析unix自动生成的所有进程日志内容,或者通过Process类进行处理……)
分享到:
评论

相关推荐

    在Java中获取系统属性.doc

    // 获取属性值 String logLevel = prop.getProperty("log.level"); String dbUrl = prop.getProperty("database.url"); // 使用这些属性来控制程序行为 ... } catch (IOException e) { e.printStackTrace(); ...

    选中对象,获取邻接对象属性值

    在本文中,我们将深入探讨如何在基于SuperMap .NET平台的iObject技术中,实现“选中对象,获取邻接对象属性值”的功能,这在处理道路网络、查询相邻地物信息等方面具有广泛应用。 首先,`iObject`是SuperMap .NET ...

    在父类获取子类属性

    在Java编程语言中,"在父类获取子类属性"是一个常见的需求,特别是在设计模式、继承和多态性等核心概念的应用中。这个主题涉及到面向对象编程的基本原理,特别是子类继承父类后如何访问和操作子类特有的属性。下面...

    在Java中获取系统属性

    可以通过调用`System.getProperty(key)`方法来获取特定的系统属性值。其中`key`是一个字符串,表示想要查询的属性名。 ```java String osName = System.getProperty("os.name"); System.out.println("Operating...

    基于Spring boot @Value 注解注入属性值的操作方法

    在Spring Boot应用中,`@Value`注解是用于注入属性值的重要工具,它可以方便地从配置文件或者非配置文件中获取数据,并将其赋值给字段或者方法参数。本篇文章将详细阐述`@Value`注解的使用方法,包括如何注入配置...

    Ophone / Android 系统属性列表

    ### Ophone / Android系统属性列表解析 在深入探讨Android与Ophone系统属性列表之前,我们需要先了解几个基本概念。Android操作系统是基于Linux内核的开源移动设备操作系统,它被广泛应用于智能手机和平板电脑等...

    Android 应用获取SystmeProperity的两种方式

    此外,频繁地获取系统属性可能会影响应用性能。因此,建议在必要时才获取,并尽可能缓存结果,避免重复读取。 总结,Android应用获取`SystemProperties`主要通过Java层的`SystemProperties`类和Native层的`system_...

    java 反射取得类的私有属性,通过私有属性取得属性值

    这篇博客文章可能讨论了如何利用反射机制来获取类的私有属性并读取其对应的属性值。以下是关于这个主题的详细解释。 首先,我们需要理解什么是反射。Java反射API提供了一系列类和接口,如`Class`、`Field`、`Method...

    sigar获取系统属性的jar

    标题中的"sigar获取系统属性的jar"表明我们关注的是Sigar库在Java环境中的应用,即`sigar.jar`,这是一个Java版本的接口,可以调用不同平台下的本地库来获取系统信息。 Sigar库由Hyperic公司开发,现已成为开源...

    查看系统设备属性的程序代码

    3. 获取设备属性:使用`SetupDiGetDeviceProperty`函数,传入设备信息集、设备接口数据以及指定的设备属性键,来获取特定属性值。 4. 显示属性:将获取到的属性值显示在MFC对话框中,可能通过`CEdit`控件或其他UI...

    使用ComboBox选择查看图层字段属性值.rar

    当用户从ComboBox中选择了某个字段后,系统会展示该字段在所有图层对象(或选定对象)中的属性值。这可以帮助用户快速了解数据的分布情况,比如最大值、最小值、平均值等统计信息,或者查找特定值的出现频率。 ...

    Android属性系统分析

    只有init进程拥有修改属性值的能力,其它进程若想修改系统属性,必须通过特定的请求机制与init进程通信,然后由init进程进行属性值的修改。 2. Android属性系统的初始化: 系统属性服务的初始化是在init进程中进行...

    获取USB com port信息中父系属性值(DLL工程)

    然而,对于某些特定的应用场景,可能还需要获取USB设备的“父系属性值”,这通常涉及到设备的设备树层次结构,即USB设备连接的上级Hub或Port的信息。 标题“获取USB com port信息中父系属性值(DLL工程)”表明我们...

    论文研究-一种改进的属性值约简算法 .pdf

    粗糙集理论是属性值约简的基础,该理论认为信息系统中的冗余信息可以通过属性的合并来去除。粗糙集理论的数据约简包括属性约简和属性值约简两个方面。 本文主要讨论的是一种改进的属性值约简算法,该算法是在属性约...

    java类文件通过$获取properties文件的属性值

    ### Java 类文件通过 $ 获取 properties 文件的属性值 在Java开发中,经常需要读取配置文件中的信息,例如数据库连接信息、系统环境变量等。这些配置通常存储在`.properties`文件中,便于维护和管理。本文将详细...

    如何在MapX下读取属性值

    在MapX库中,读取地图对象的属性值是地理信息系统开发中的常见操作。MapX提供了多种方式来访问和处理地图图层中的属性数据。以下是根据标题和描述中提到的方法详细解释: 1. **通过Layer对象的KeyField属性和...

    qt 属性表,设置属性和获取属性例子

    每个属性都有一个关联的getter和setter方法,可以通过`QObject::setProperty()`和`QObject::property()`来设置和获取属性值。此外,属性系统支持信号和槽机制,当属性值改变时,可以自动触发信号。 2. **定义属性**...

    Runtime 动态修改属性的值.zip

    通过`setValue:forKey:`和`valueForKey:`方法,我们可以动态地设置和获取任何响应KVC的对象的属性值。 2. KVO(Key-Value Observing):KVO提供了一种观察并监听某个属性变化的方法,当属性值发生变化时,可以触发...

    JavaScript地物编辑弹窗增加属性值

    在JavaScript地物编辑弹窗增加属性值这一主题中,我们主要关注的是如何使用SuperMap iClient for JavaScript库来实现地理信息系统(GIS)中的地物编辑功能,并在编辑过程中动态添加或修改属性值。SuperMap iClient ...

    ReflexProperty(通过反射出属性值)

    本文将深入探讨“ReflexProperty”这一概念,即如何通过反射来获取和设置对象的属性值。这在处理未知类型或动态编程场景中尤其有用。 1. **反射基础** 反射是.NET Framework提供的一种机制,让我们能够在运行时...

Global site tag (gtag.js) - Google Analytics