几个java小工具使用总结jps jmap jstat
文中jstat部分转自
http://blog.csdn.net/kozazyh/archive/2010/02/04/5289684.aspx
用java语言编程的时候,sun提供了几个小工具,用着还是不错的,特意做下总结
1.jps
jps用来查看当前java的进程,其实它的功能可以基本上由ps来实现
几个常用的参数:
-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
$
>
jps
-
q
28680
23789
23651
-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null
$
>
jps
-
m
28715
Jps
-
m
23789
BossMain
23651
Resin
-
socketwait
32768
-
stdout
/
data
/
aoxj
/
resin
/
log
/
stdout.log
-
stderr
/
data
/
aoxj
/
resin
/
log
/
stderr.log
-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
$
>
jps
-
l
28729
sun.tools.jps.Jps
23789
com.asiainfo.aimc.bossbi.BossMain
23651
com.caucho.server.resin.Resin
-v 输出传递给JVM的参数
$
>
jps
-
v
23789
BossMain
28802
Jps
-
Denv.
class
.path
=/
data
/
aoxj
/
bossbi
/
twsecurity
/
java
/
trustwork140.jar:
/
data
/
aoxj
/
bossbi
/
twsecurity
/
java
/
:
/
data
/
aoxj
/
bossbi
/
twsecurity
/
java
/
twcmcc.jar:
/
data
/
aoxj
/
jdk15
/
lib
/
rt.jar:
/
data
/
aoxj
/
jd
k15
/
lib
/
tools.jar
-
Dapplication.home
=/
data
/
aoxj
/
jdk15
-
Xms8m
23651
Resin
-
Xss1m
-
Dresin.home
=/
data
/
aoxj
/
resin
-
Dserver.root
=/
data
/
aoxj
/
resin
-
Djava.util.logging.manager
=
com.caucho.log.LogManagerImpl
-
Djavax.management.builder.initial
=
com.caucho.jmx.MBeanServerBuilderImpl
2.jmap
jmap用来查看给定一个进程或者是调试服务器共享对象之间的映射以及堆中的细节。sun官方文档中的定义
jmap
prints shared object memory maps or heap
memory details of a given process or core file or a remote debug server
用法:
jmap 选项 pid
jmap 选项 coref
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
五个有用的过滤器
一、使浏览器不缓存页面的过滤器
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 用于的使 Browser 不缓存页面的过滤器
*/
public class ForceNoCacheFilter implements Filter { ......
服务器中转消息,是费时的事,可以加入多线程。这样以来,会产生很多线程。可以运用线程池来管理。
这里运用java.util.concurrent包的Executors.newCachedThreadPool来管理。
废话少说,上代码:
服务器端:MySocketServer.java
/*
* To change this template, choose Tools | Templates
* and open the ......
自己的源程序是在F:\parser\ParserDemo.java,
使用命令行:javac -classpath stanford-parser.jar;. ParserDemo.java编译,
命令行:java -cp stanford-parser.jar;. Parser运行
都没有问题。
但是当我在c++程序中使用用命令行(java -cp stanford-parser.jar;. Parser)调用改程序就会出错。提示:java.lang.NoClassD ......