JAVA总结(一):怎样获取JVM的全局属性
来源:互联网 发布:算法时代 pdf 编辑:程序博客网 时间:2024/06/01 07:22
在JAVA代码的跨平台实践中,我们需要知道操作系统的类型及版本,而JVM在启动时,就已经将这些信息内置在System的属性中(可通过System.getProperties()获取)。
所以,如果要获取JVM运行的操作系统信息,只需要通过响应的键值获取即可:
// 获取操作系统的名称System.getProperty("os.name")// 获取操作系统的版本System.getProperty("os.version")
以我的电脑为例,上面的代码将输出如下的结果:
Windows 1010.0
如果要获取启动的类与参数,则可以使用“sun.java.command”参数(针对SUN的JDK)。
除了可以通过System.getProperties()获取所有的内置键值,还可以通过jinfo命令进行获取,输出的内容不仅包括系统属性,还包括启动参数与命令,如下:
# 获取运行的所有JAVA进程jps -mlv# 输出JAVA进程的详细信息,假定上面输出的进程ID为20018jinfo 20018
输出内容的信息非常丰富,如内存配置信息:
Non-default VM flags: -XX:CICompilerCount=4-XX:InitialHeapSize=264241152 -XX:MaxHeapSize=4211081216 -XX:MaxNewSize=1403518976 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=88080384 -XX:OldSize=176160768 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
在实际应用中,很多第三方库都依赖于系统的全局属性进行操作,如Hibernate的缓存配置文件ehcache.xml:
<?xml version="1.0" encoding="UTF-8"?><ehcache> <diskStore path="java.io.tmpdir/ehcache"/></ehcache>
最后看一个结合起来进行使用的例子:
Object[] params = new Object[]{System.getProperty("os.name"), System.getProperty("os.version")};System.out.println( new MessageFormat("本操作系统\"{0}\"的版本是{1}.").format(params));
结论
利用全局属性进行配置信息共享是一种常见的方法,除了包含JVM的全局属性之外,也可能包含应用程序框架的通用属性,如Tomcat的相关属性catalina.base、catalina.home等。
阅读全文
0 0
- JAVA总结(一):怎样获取JVM的全局属性
- jvm系统属性的获取
- JavaScript的全局属性和全局函数总结.........
- Java虚拟机JVM总结(一)JVM运行原理及JVM中的Stack和Heap的实现过程
- JAVA总结系列(一)JVM概要
- Java虚拟机JVM性能优化(一):JVM知识总结
- Java虚拟机JVM性能优化(一):JVM知识总结
- HTML5的全局属性
- html的全局属性
- HTML的全局属性
- 关于jvm的学习总结(一)
- 获取JVM默认编码以及获取其它JVM属性的方法
- 怎样获取一个集合中不同对象的同一个属性?
- 怎样获取另一个类中封装的属性
- java JVM 系统属性
- 获取全局的context
- 全局异常的获取
- 获取全局的上下文
- Discuz!教程之修改帖子下方“来自: XX手机客户端”的链接地址
- LintCode157
- Little Tiger vs. Deep Monkey HDU
- ListView相关设置
- 【单调栈】Codeforces 601B Lipshitz Sequence
- JAVA总结(一):怎样获取JVM的全局属性
- Embedded/Mobile CNN Resources
- js中的字符串方法总结
- 渐渐陌生的那些人
- Cookie和Session
- 机器学习笔记(七) 集成学习概述
- 2017年全国研究生电子设计大赛上海赛区感触
- 如何在Ubuntu下安装五笔输入法
- 伪谱法优化程序已经开发出来