java命令行知多少(反正我知道的比较少)打开 %java_home%\bin 下面,看一堆的命令?windows下是一堆exe文件。?
java命令行知多少(反正我知道的比较少)
打开 %java_home%\bin 下面,看一堆的命令
?
windows下是一堆exe文件。
?
挑几个主要的来学习记录下,蛮有用的,居家旅行,调错装x,必备!~
?
java :忽略
?
javac :忽略 , ?唯一需要知道 javac -g ,
并且通过实地证明,eclipse,mvn编译都是默认加了-g进行编译的。(感谢R_Fx指导,名字太长记不住。。。)
?
?
javah :忽略。jni才用得到!~
?
javaw:原来是启动图形界面用到的!~
?
jvisualvm.exe ?这个点了就知道了。很给力~~~
?
javap :
?
详细讲,这玩意是分析运行前代码和了解jvm,class机制的好家伙!
?
?
?
?
jconsole : 会用就无视了
?
?
?
下面4个是解决很多oom或者监视运行中的JVM的必备武器。
?
?
jhat
?
jps
这个很简单,用一下就知道,通过这个查看java的进程id。
?
?
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x080f6800 nid=0x7bb6 in Object.wait() [0x440cf000..0x440cff20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x54c79120> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x080f5800 nid=0x7bb5 in Object.wait() [0x44120000..0x44120fa0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x54c1a290> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x080f2400 nid=0x7bb4 runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x08072800 nid=0x7bb2 runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x08073800 nid=0x7bb3 runnable
"VM Periodic Task Thread" prio=10 tid=0x0824c800 nid=0x7bc0 waiting on condition
JNI global references: 19493
?
jhat
用法:jhat -J-mx1024m??heap_file_name
前面dump出来的二进制文件,现在用。
放在我这里用就是:jhat -J-mx1024m ?formatDump
?
。。。这玩意太慢了。。随便dump一个都500来M,真是恐怖~~~
?
?
?写道Reading from formatDump...
Dump file created Wed Dec 29 19:20:40 CST 2010
Snapshot read, resolving...
Resolving 9500142 objects...
#
# An unexpected error has been detected by Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 131072000 bytes for GrET in C:\BUILD_ARE
A\jdk6_13\hotspot\src\share\vm\utilities\growableArray.cpp. Out of swap space?
#
# Internal Error (allocation.inline.hpp:42), pid=5492, tid=8632
# Error: GrET in C:\BUILD_AREA\jdk6_13\hotspot\src\share\vm\utilities\growableA
rray.cpp
#
# Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixed mode windows-x86)
# An error report file with more information is saved as:
# C:\Users\guoliang\Downloads\hs_err_pid5492.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#?
?
这个太尴尬了。。。Out of swap space?。。。。
?
?
?
jstatd?
?
jstat(sun.tools.jstat)jstat实用程序可以用于收集各种各样不同的统计数据。jstat统计数据被分类到“选项”中,这些选项在命令行中被指定作为第一参数。对于JDK 1.6来说,您可以通过采用命令-options运行jstat查看可用的选项清单。清单1中显示了部分选项:
清单1.jstat选项
1.
2.
3. -class
4. -compiler
5. -gc
6. -gccapacity
7. -gccause
8. -gcnew
9. -gcnewcapacity
10. -gcold
11. -gcoldcapacity
12. -gcpermcapacity
13. -gcutil
14. -printcompilation
实用程序的JDK记录将告诉您清单1中每个选项返回的内容,但是其中大多数用于收集垃圾的收集器或者其部件的性能信息。-class选项显示了加载及未加载的类(使其成为检测应用程序服务器或代码中ClassLoader泄露的重要实用程序,且-compiler和-printcompilation都显示了有关Hotspot JIT编译程序的信息。
默认情况下,jstat在您核对信息时显示信息。如果您希望每隔一定时间拍摄快照,请在-options指令后以毫秒为单位指定间隔时间。jstat将持续显示监控进程信息的快照。如果您希望jstat在终止前进行特定数量的快照,在间隔时间/时间值后指定该数字。
如果5756是几分钟前开始的运行SwingSet2程序的VMID,那么下列命令将告诉jstat每250毫秒为10个佚代执行一次gc快照转储,然后停止:
15. jstat -gc 5756 250 10
请注意Sun(现在的Oracle)保留了在不进行任何预先通知的情况下更改各种选项的输出甚至是选项本身的权利。这是使用不受支持实用程序的缺点。请参看Javadocs了解jstat输出中每一列的全部细节。
?
?
1 楼 RednaxelaFX 2010-12-29 还有jvisualvm哇
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒 2 楼 beneo 2010-12-29 RednaxelaFX 写道还有jvisualvm哇
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
javaw呢 3 楼 yznxing 2010-12-29 RednaxelaFX 写道还有jvisualvm哇
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
我勒个去。。不是草稿吗。。怎么发布了。
jvisualvm 我刚在看的时候 刚好看到了,玩耍了一下午感觉很爽。
哈哈~~~ 4 楼 yznxing 2010-12-29 beneo 写道RednaxelaFX 写道还有jvisualvm哇
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
javaw呢
诶呀,javaw我貌似没接触过,看看是干啥的~~~~
3q~~~ 5 楼 RednaxelaFX 2010-12-29 yznxing 写道RednaxelaFX 写道还有jvisualvm哇
另外,启动图形界面的Java程序用的javaw.exe、启动Java WebStart用的javaws.exe之类的也别漏掉撒
我勒个去。。不是草稿吗。。怎么发布了。
jvisualvm 我刚在看的时候 刚好看到了,玩耍了一下午感觉很爽。
哈哈~~~
哈哈哈哈你也遇到草稿泄漏门了 XDD