详解java jinfo命令

一、介绍

jinfo(Configuration Info for Java)的作用是实时查看和调整虚拟机各项参数。

使用jps命令的-v参 数可以查看虚拟机启动时显式指定的参数列表,但如果想知道未被显式指定的参数的系统默认值,除了去找资料外,就只能使用jinfo的-flag选项进行查询了(如果只限于JDK 6或以上版本的话,使用java -XX:+PrintFlagsFinal查看参数默认值也是一个很好的选择)。

jinfo还可以使用-sysprops选项把虚拟机 进程的System.getProperties()的内容打印出来。这个命令在JDK 5时期已经随着Linux版的JDK发布,当 时只提供了信息查询的功能,JDK 6之后,jinfo在Windows和Linux平台都有提供,并且加入了在运行期 修改部分参数值的能力(可以使用-flag[+|-]name或者-flag name=value在运行期修改一部分运行期可写的 虚拟机参数值)。

在JDK 6中,jinfo对于Windows平台功能仍然有较大限制,只提供了最基本的-flag选项。

二、jinfo命令格式

jinfo [ option ] pid

三、option

where <option> is one of:
-flag <name> 打印指定VM参数的值

-flag [+|-]<name> 启用或禁用指定VM的参数

-flag <name>=<value> 将VM的指定的参数名设置为给定值

-flags 打印指定VM的参数

-sysprops 获取指定VM的系统参数相当于代码System.getProperties()

<no option> 默认打印上面两个

-h | -help 打印帮助信息

四、执行样例

查询CMSInitiatingOccupancyFraction参数值

jinfo -flag CMSInitiatingOccupancyFraction 1444
之后将打印想要查询的参数值,例如打印:-XX:CMSInitiatingOccupancyFraction=85

五、增加JVM打印详细GC日志参数

jinfo –flag -或+[参数] 可以增加参数,但是仅限于由java -XX:+PrintFlagsFinal –version查询出来且为manageable的参数

查看PrintGCDetails参数是否开启

C:\Users\hacry>jinfo -flag PrintGCDetails 33616

-XX:-PrintGCDetails

增加PrintGCDetails打印详细GC参数

C:\Users\hacry>jinfo -flag +PrintGCDetails 33616

再次查看

C:\Users\hacry>jinfo -flag PrintGCDetails 33616

-XX:+PrintGCDetails

到此这篇关于详解java jinfo命令的文章就介绍到这了,更多相关java jinfo内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决IDEA和CMD中java命令提示错误: 找不到或无法加载主类的问题

    一 概述 CMD D:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java CommandLineParameter        错误: 找不到或无法加载主类 CommandLineParameter IDEA D:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java CommandLineParamete

  • java编译命令基础知识点

    我们在对计算机下达指令时,人类的语言它是不能够明白,需要通过编译的时候翻译成计算机能听懂的语言.编译过程中会调用javac命令,这点大家可能接触的不多,毕竟是是计算机程序内部运行时的操作.下面我们就编译的概念.命令带来讲解,然后分享一个编译实例给大家练习. 1.编译概念 通过流程图可以看出其实java的执行可以分为两大步骤,第一是编译,这一过程就是调用的javac命令,编译成对应的.class文件.第二是解释执行,这一过程是调用的java命令. 2.编译命令 (1)linux rm -rf Ma

  • java自带命令行工具jmap、jhat与jinfo的使用实例代码详解

    java自带命令行工具(jmap,jhat,jinfo) (1)JMAP 1.作用 打印进程,core文件,和远程进程的共享对象存储map或堆存储器的详细信息. 2.使用 jmap[options]pid jmap[options]executablecore jmap[options][pid]server-id@]remote-hostname-or-IP 如果指定的进程是在64位Java虚拟机(JVM)上运行,那么你可能需要指定-J-d64选项,例如:jmap -J-d64 -heap p

  • Java如何在命令行中获取指定数据

    1.执行ipconfig /all获取主机所有网卡信息 并分析这些字符串,提取出有效网卡(网卡名称,mac地址,ipv4地址,掩码,网关,dns) 将网卡插入HashMap中,key是网卡的名称,value是网卡对象(包含mac和4个逻辑地址) 请输入网卡的名称,程序通过map的get方法取出此名称对应的网卡对象 根据网卡对象执行其方法getNetId()取出其网卡所在网络号进行打印 getBroadId()取出其广播号进行打印 2.根据网卡的ip和掩码扫描所有这个子网中可能存在的邻居 然后用p

  • Intellij IDEA命令行执行java无法加载主类解决方案

    思路一:环境配置中,CLASSPATH配置的最前面加入".;","."表示当前目录中搜索 思路二 1.命令行进入到.java所在目录 2.通过 javac d . [java文件名(带.java后缀)] 编译java文件 3.通过 java [package后的路径名].[java文件名(不带.java后缀)] 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • Java执行cmd命令两种实现方法解析

    一般java在执行CMD命令时,通常是使用Runtime.getRuntime.exec(command)来执行的,这个方法有两种细节要注意: 1.一般执行方法,代码如下,这种方法有时执行exe时会卡在那里. //一般的执行方法,有时执行exe会卡在那 stmt要执行的命令 public static void executive(String stmt) throws IOException, InterruptedException { Runtime runtime = Runtime.g

  • 详谈java命令的本质逻辑揭秘

    前言 在日常编码中,有了ide的支持,我们已经很少直接在命令行中直接执行java XXX命令去启动一个项目了.然而我们有没有想过,一个简单的java命令背后究竟做了些什么事情?让我们看下下面几个简单的问题 1.java命令之后可以跟很多参数,那么这些参数是如何被解析的?为何-version会返回版本号而如果紧跟一个类名则会启动jvm? 2.为何我们自己定义的入口方法必须满足如下的签名?是否还有其他可能性? public static void main(String[] args) { } 3.

  • 解决java 命令行乱码的问题

    虚拟机参数加上 -Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Duser.language=zh -Duser.region=CN 补充:java执行cmd命令,返回结果中文乱码问题解决 public static void main(String[] args) { try { // 执行ping命令 Process process = Runtime.getRuntime().exec("cmd /c e:&dir")

  • Java基础之常用的命令行指令

    1.进入某盘,直接打出要进入的存储盘再冒号回车即可 例如:从C盘中的\Users\Administrator目录下进入d盘 打出"d:"再回车就欧克啦~ 2. "dir"显示某目录或某盘下的所有文件目录 例如:1.显示D盘下的文件目录 打出"dir"再回车 3. "md"新建文件夹 例如:1.在d盘下创建一个叫JavaEE的文件[也可在d盘的文件目录下建立文件夹] 格式是md javaEE再回车就可以啦.我们可以去我的电脑d盘

  • java 通过cmd 调用命令启动tomcat的操作

    我们有时候为了方便,公司会做一个项目管理,便于启动和关闭我们部署在服务器上面的项目,我这里就采用了java的方式,嗯......仅限于参考...... public static void main(String args[]) throws IOException { String exec = "C:/software/apache-tomcat-8.5.24/bin/startup.bat"; Runtime runtime = Runtime.getRuntime(); run

  • Java调用Shell命令和脚本的实现

    1.介绍 有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法: Process exec(String command) 在单独的进程中执行指定的字符串命令. Process exec(String[] cmdarray) 在单独的进程中执行指定命令和变量. Process exec(String[] cmd

随机推荐