java 命令notes

jps:查看本机的Java中进程信息。

jstack:打印线程的栈信息,制作线程Dump。

jmap:打印内存映射,制作堆Dump。

jstat:性能监控工具。

jhat:内存分析工具。

jconsole:简易的可视化控制台。

jvisualvm:功能强大的控制台。

1.jps

2.jstack

  http://www.hollischuang.com/archives/110

3.jmap

4.jstat( http://www.hollischuang.com/archives/481 )

  jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。

5.jhat( http://www.hollischuang.com/archives/1047 )

  jhat命令解析会Java堆dump并启动一个web服务器,然后就可以在浏览器中查看堆的dump文件了。

6.jinfo( http://www.hollischuang.com/archives/1094 )

  jinfo可以输出java进程、core文件或远程debug服务器的配置信息。这些配置信息包括JAVA系统参数及命令行参数,如果进程运行在64位虚拟机上,需要指明-J-d64参数,如:jinfo -J-d64 -sysprops pid

7.javap

javap可以查看java编译器为我们生成的字节码。通过它,可以对照源代码和字节码,从而了解很多编译器内部的工作。

-help 帮助
-l 输出行和变量的表
-public 只输出public方法和域
-protected 只输出public和protected类和成员
-package 只输出包,public和protected类和成员,这是默认的
-p -private 输出所有类和成员
-s 输出内部类型签名
-c 输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令,
-verbose 输出栈大小,方法参数的个数
-constants 输出静态final常量

平时一般用javap -c比较多,该命令用于列出每个方法所执行的JVM指令,并显示每个方法的字节码的实际作用。可以通过字节码和源代码的对比,深入分析java的编译原理,了解和解决各种Java原理级别的问题。

2.
时间: 2024-12-09 09:31:43

java 命令notes的相关文章

JAVA命令大全

1.java.exe:======================运行java程序,这个相信每一位用Java的人知道了. 2.javac.exe:======================编译的Java程序,生成.class文件 3.javaw.exe:======================功 能:跟java命令相对的,可以运行.class文件,主要用来执行图形界面的java程序运行java命令时,会出现并保持一个console窗口,程 序中的信息可以通过System.out在conso

Java命令行程序构建工具-airline

以前对于开发Java命令行程序,我都是很头大的,命令行程序麻烦的是解析参数,以及一些帮助信息,今天在研究接口测试时偶然发现了一个工具可以让你快速构建命令行程序 github地址 airline 导入jar包 airline jar 在maven仓库里搜索适合你构建系统的语句 代码 我找了个解析har文件的项目,来讲解开发过程 定制自己的命令行 我的命令行以doctorq作为命令,参数为company,命令的完整格式应该为doctorq company XXXXX. @Command(name="

Java命令学习系列(一)——Jps

jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号. jps相当于Solaris进程工具ps.不象”pgrep java”或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例.因此,它查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动 器).另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程. 位置 我们知道,很多Java命令都在jdk的JAVA_HOME/bin/目录下面,jps也不例

Java命令学习系列(7):Javap(转)

原文出处: Hollis(@Hollis_Chuang) javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码. 一般情况下,很少有人使用javap对class文件进行反编译,因为有很多成熟的反编译工具可以使用,比如jad.但是,javap还可以查看java编译器为我们生成的字节码.通过它,可以对照源代码和字节码,从而了解很多编译器内部的工作. 实例 javap命令分解一个class文件,它根据options来决定到底输出什么.如果没有使用options,那么

【总结】java命令解析以及编译器,虚拟机如何定位类

学Java有些日子了,一直都使用IDE来写程序.这样的好处就是能让我连如何用命令行编译,解释执行Java源代码都不知道,就更不清楚JDK中的编译器和虚拟机(包含字节码解释器)是如何定位到类文件的.悲哀呀....... 1.安装JDK,配置环境变量. 不将JDK所在的目录配置到系统环境变量中,系统怎么能找到JDK中的编译器,解释器在哪呀?如果不指明JDK的bin文件夹的位置,在shell中是无法找到javac/java命令的.这点就不多说了 2.编译,解释执行Java程序.[ javac命令/ja

cmd上执行java命令 - Could not find or load main class

成功的安装了JDK和Eclipse后,在开发测试Java工程中,很少会遇到开发环境问题. 这都归功于Eclise通过工程(project)和包(package)把这些管理好. 但偶尔在命令行下编译和运行Java文件时,还会遇到如下错误:(以下示例都是在Win7上进行)D:\temp> java Tmp 有时java源程序中package设置不当也会导致上述错误.1. 在java源文件开头没有包声明语句 package; D:\temp> javac Tmp.javaD:\temp> ja

java命令执行jar包的方式

大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件. 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFEST.MF里面添加如下一句话: Main-Class: test.someClassName 然后我们可以在控制台里输入java

java命令行执行程序解决依赖外部jar包的问题

用java命令行直接执行程序,如果这个程序需要引用外部jar包.就不能单纯用java xx来执行 如果你的jar包和程序就在一个目录: 编译 javac -cp D:\yy\yy.jar,D\xx\xx.jar test.java 执行 java -cp D:\yy\yy.jar,D\xx\xx.jar test 但是往往我们依赖的包很多,要一个个填写估计就疯了.所有我们一般会把所有的外部依赖包都放在一个文件夹里,比如在D:\lib 编译 javac -Djava.ext.dirs=D:\lib

Java 命令行编译项目

(初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像用傻瓜相机照相一般. 有看见许多高手都是直接用vim编辑文件,命令行编译运行,觉得那样不是反而更繁琐? 转折点是在前几天本科毕设题目选定之后.毕设题是一个基于java 字节码的类关系动态分析.需要对.class文件中字节码进行更改(具体的说是在许多指令后加入做标记的新指令,以实现动态跟踪的目的). 我发现,eclipse根本无法如此灵活,他无法直接装载运行一个我修改过的.class文件.它是