- 浏览: 466303 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
ty1972873004:
sunwang810812 写道我运行了这个例子,怎么结果是这 ...
Java并发编程: 使用Semaphore限制资源并发访问的线程数 -
lgh1992314:
simpleDean 写道请问,Logger.setLevel ...
Java内置Logger详解 -
sunwang810812:
我运行了这个例子,怎么结果是这样的:2号车泊车6号车泊车5号车 ...
Java并发编程: 使用Semaphore限制资源并发访问的线程数 -
jp260715007:
nanjiwubing123 写道参考你的用法,用如下方式实现 ...
面试题--三个线程循环打印ABC10次的几种解决方法 -
cb_0312:
SurnameDictionary文章我没看完,现在懂了
中文排序
我们可以通过如下两种方式获取System Properties信息:
1. System.getProperties()
2. ManagementFactory.getRuntimeMXBean().getSystemProperties()
ManagementFactory.getRuntimeMXBean().getSystemProperties方法采用System.getProperties()来完成的,如果在本地运行程序去获取某些系统属性的值,结果是一样的。
它们的一个区别,RuntimeMXBean能够去获取远程 VM上的System Properties。
ManagementFactory的newPlatformMXBeanProxy方法提供了访问远程VM的方法。可采取如下方式来访问远程VM,参考https://blogs.oracle.com/jmxetc/entry/how_to_retrieve_remote_jvm
// Connect to target final JMXConnector connector = JMXConnectorFactory.connect(target); // Get an MBeanServerConnection on the remote VM. final MBeanServerConnection remote = connector.getMBeanServerConnection(); final RuntimeMXBean remoteRuntime = ManagementFactory.newPlatformMXBeanProxy( remote, ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class);
RuntimeMXBean的具体内容如下:
/* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package sun.management; import java.lang.management.RuntimeMXBean; import java.util.List; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.Properties; import javax.management.openmbean.CompositeData; import javax.management.openmbean.CompositeDataSupport; import javax.management.openmbean.CompositeType; import javax.management.openmbean.OpenType; import javax.management.openmbean.SimpleType; import javax.management.openmbean.OpenDataException; /** * Implementation class for the runtime subsystem. * Standard and committed hotspot-specific metrics if any. * * ManagementFactory.getRuntimeMXBean() returns an instance * of this class. */ class RuntimeImpl implements RuntimeMXBean { private final VMManagement jvm; private final long vmStartupTime; /** * Constructor of RuntimeImpl class. */ RuntimeImpl(VMManagement vm) { this.jvm = vm; this.vmStartupTime = jvm.getStartupTime(); } public String getName() { return jvm.getVmId(); } public String getManagementSpecVersion() { return jvm.getManagementVersion(); } public String getVmName() { return jvm.getVmName(); } public String getVmVendor() { return jvm.getVmVendor(); } public String getVmVersion() { return jvm.getVmVersion(); } public String getSpecName() { return jvm.getVmSpecName(); } public String getSpecVendor() { return jvm.getVmSpecVendor(); } public String getSpecVersion() { return jvm.getVmSpecVersion(); } public String getClassPath() { return jvm.getClassPath(); } public String getLibraryPath() { return jvm.getLibraryPath(); } public String getBootClassPath() { if (!isBootClassPathSupported()) { throw new UnsupportedOperationException( "Boot class path mechanism is not supported"); } ManagementFactory.checkMonitorAccess(); return jvm.getBootClassPath(); } public List<String> getInputArguments() { ManagementFactory.checkMonitorAccess(); return jvm.getVmArguments(); } public long getUptime() { long current = System.currentTimeMillis(); // TODO: If called from client side when we support // MBean proxy to read performance counters from shared memory, // need to check if the monitored VM exitd. return (current - vmStartupTime); } public long getStartTime() { return vmStartupTime; } public boolean isBootClassPathSupported() { return jvm.isBootClassPathSupported(); } public Map<String,String> getSystemProperties() { Properties sysProps = System.getProperties(); Map<String,String> map = new HashMap<String, String>(); // Properties.entrySet() does not include the entries in // the default properties. So use Properties.stringPropertyNames() // to get the list of property keys including the default ones. Set<String> keys = sysProps.stringPropertyNames(); for (String k : keys) { String value = sysProps.getProperty(k); map.put(k, value); } return map; } }
如果博友知道两者的其它区别,也请指出,谢谢。
发表评论
-
工厂类中移除if/else语句
2016-07-10 19:52 903面向对象语言的一个强大的特性是多态,它可以用来在代码中移除 ... -
Java编程练手100题
2014-12-11 17:13 6730本文给出100道Java编程练手的程序。 列表如下: 面 ... -
数组复制的三种方法
2014-11-30 12:57 2214本文将给出三种实现数组复制的方法 (以复制整数数组为例)。 ... -
数组复制的三种方法
2014-11-30 12:54 0本文将给出三种实现数组复制的方法 (以复制整数数组为例)。 ... -
四种复制文件的方法
2014-11-29 13:21 1741尽管Java提供了一个类ava.io.File用于文件的操 ... -
判断一个字符串中的字符是否都只出现一次
2014-11-25 12:58 2724本篇博文将给大家带来几个判断一个字符串中的字符是否都只出现一 ... -
使用正则表达式判断一个数是否为素数
2014-11-23 13:35 2169正则表达式能够用于判断一个数是否为素数,这个以前完全没有想过 ... -
几个可以用英文单词表达的正则表达式
2014-11-21 13:12 3751本文,我们将来看一下几个可以用英文单词表达的正则表达式。这些 ... -
(广度优先搜索)打印所有可能的括号组合
2014-11-20 11:58 1954问题:给定一个正整n,作为括号的对数,输出所有括号可能 ... -
随机产生由特殊字符,大小写字母以及数字组成的字符串,且每种字符都至少出现一次
2014-11-19 14:48 3976题目:随机产生字符串,字符串中的字符只能由特殊字符 (! ... -
找出1到n缺失的一个数
2014-11-18 12:57 3176题目:Problem description: You h ... -
EnumSet的几个例子
2014-11-14 16:24 8749EnumSet 是一个与枚举类型一起使用的专用 Set 实现 ... -
给定两个有序数组和一个指定的sum值,从两个数组中各找一个数使得这两个数的和与指定的sum值相差最小
2014-11-12 11:24 3327题目:给定两个有序数组和一个指定的sum值,从两个数组 ... -
Java面试编程题练手
2014-11-04 22:49 6700面试编程 写一个程序,去除有序数组中的重复数字 编 ... -
Collections用法整理
2014-10-22 20:55 9846Collections (java.util.Collect ... -
The Code Sample 代码实例 个人博客开通
2014-09-04 18:48 1418个人博客小站开通 http://thecodesample. ... -
Collections.emptyXXX方法
2014-06-08 13:37 2145从JDK 1.5开始, Collections集合工具类中预先 ... -
这代码怎么就打印出"hello world"了呢?
2014-06-08 00:37 7398for (long l = 4946144450195624L ... -
最短时间过桥
2014-04-21 22:03 4145本文用代码实现最短时间过桥,并且打印如下两个例子的最小过桥时间 ... -
将数组分割成差值最小的子集
2014-04-20 22:34 2903本文使用位掩码实现一个功能 ==》将数组分割成差值最小的子集 ...
相关推荐
在Android开发中,有时我们需要获取系统的属性值,例如设备型号、系统版本等,这些属性通常存储在`SystemProperties`中。本篇文章将详细介绍非系统应用如何通过Java层和Native层两种方式来获取`SystemProperties`的...
《Windows 7 System Properties Logo Changer:个性化你的操作系统体验》 Windows 7是微软公司推出的一款深受用户喜爱的操作系统,其稳定性和用户友好性在当时备受赞誉。然而,对于追求个性化的用户来说,系统默认...
实际使用这个类时,首先确定配置文件的路径,然后创建`Properties`类的实例,最后调用`getProperties`方法获取配置字典: ```python import sys fileName = sys.path[0] + '\\' + 'system.properties' p = ...
使用 `android.os.SystemProperties` 类可以获取运营商 SIM 卡的 IMSI 号,代码如下: ```java String IMSI = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI); ``` 2. ...
需要注意的是,在 Android 8.0 及更高版本中, SystemProperties.get() 方法已经被废弃,需要使用 TelephonyManager.getDeviceId() 方法来获取 IMEI 号。 3. 获取序列号 Android 设备的序列号可以通过多种方法来...
标题“Control Panel - System Properties”指的是Windows操作系统中的“控制面板”功能,特别是“系统属性”这一部分。在Windows中,“控制面板”是一个集中管理计算机设置的界面,而“系统属性”则是用户查看和...
这是最直接的方法,通过创建`Properties`对象并调用其`load()`方法,传入一个`InputStream`实例来加载Properties文件。例如: ```java import java.io.FileInputStream; import java.io.InputStream; import java....
### API读取Properties文件的六种方法 在Java开发中,`Properties` 文件常用于存储配置信息,如数据库连接字符串、应用配置等。通过API读取这些文件是开发者经常遇到的任务之一。本文将详细介绍六种使用J2SE API...
它提供了加载、存储、设置和获取属性的方法。下面将详细讲解如何操作: 1. **写入时间到properties文件**: - 首先,创建一个`Properties`对象。 - 使用`SimpleDateFormat`或`java.time.format.DateTimeFormatter...
### 读取Properties文件的六种方法 在Java开发中,`Properties`文件是一种非常常见的配置文件格式,它主要用于存储程序的各种配置信息。通过不同方式读取这些配置信息,可以提高程序的灵活性与可维护性。本文将详细...
而"SystemProperties.zip"可能是一个示例代码库或者补充材料,包含了一些演示如何访问和使用这些系统属性的代码片段。通过解压并研究这个文件,开发者可以直接学习到如何在实际项目中应用这些概念。 综上所述,了解...
### Java读取Properties文件的六种方法 在Java开发中,`Properties` 文件常用于存储配置信息,如数据库连接字符串、应用配置等。正确且高效地读取这些配置文件对于程序运行至关重要。本文将详细介绍六种不同的方法...
一旦`properties`文件被正确加载到`Properties`对象中,就可以通过`getProperty()`方法来获取指定键的值了。例如,上面的示例代码中通过`System.out.println(props.getProperty("dx.server.host"));`输出了`dx....
在这个例子中,我们首先通过Context的getSystemService方法获取到TelephonyManager的实例,然后调用其getDeviceId方法来获取IMEI。如果设备不支持IMEI或者没有权限,该方法可能返回null或者空字符串。 对于MEID,...
`Properties`类还提供了其他方法,如`propertyNames()`用于获取所有键的枚举,`list(PrintStream out)`用于打印所有键值对到控制台,以及`keys()`和`values()`方法分别获取所有键和值的集合。 8. **注意** - `....
在这个例子中,我们首先创建一个`Properties`对象,然后通过`FileInputStream`打开配置文件,使用`load()`方法加载属性,最后用`getProperty()`获取指定键的值。 2. 使用`ResourceBundle`类 `ResourceBundle`类...
在这个例子中,我们创建了一个`FileInputStream`来打开`config.properties`文件,然后通过`Properties`对象的`load()`方法加载文件内容。`getProperty()`方法用于获取特定键对应的值。 2. 处理编码问题: 默认情况...
C#提供了一种简单有效的方法来操作配置文件中的属性(Properties),即通过`System.Configuration`命名空间下的`ConfigurationManager`类以及`Properties.Settings`类。 #### 一、基础知识介绍 1. **配置文件**: 在...
`java.util.Properties`是Java集合框架的一部分,它继承自`Hashtable`类,并添加了一些特定于处理`properties`文件的方法。主要方法包括: - `load(InputStream inStream)`:从输入流中加载属性列表。 - `store...
本文将详细介绍多种读取Properties文件的方法,并提供相关的代码示例。 1. **使用Properties类加载文件** 最常用的方式是通过`java.util.Properties`类来读取`.properties`文件。以下是一个简单的示例: ```java ...