java基础-jdk工具包

1. 标准工具

这些工具都是JDK提供的,通常都是长期支持的工具,JDK承诺这些工具比较好用。不同系统、不同版本之间可能会有差异,但是不会突然就有一个工具消失。

1.1 基础包 (extcheck, jar, java, javac, javadoc, javap)

工具简述常用命令
javac编译.java源文件javac hello.java
java运行.class字节码或.jar文件java hello.class, java -jar my.jar
jar创建和管理Jar文件jar -cvf my.jar .\*
javadocAPI文档生成器javadoc hello.java 生成html文档
javap根据Java字节码反编译为Java源代码javap hello.class
jdbJava调试器(Java Debugger)

1.2 故障排查,分析,监控和管理 (jcmd, jconsole, jmc, jvisualvm)

工具简述常用命令
jcmd发送诊断命令到JVMjcmd
jconsole监控本地和远程jvm的图形工具jconsole
jvisualvm查看java程序信息jvisualvm

jcmd命令

查看进程 jcmd -l

命令:jcmd -l
描述:查看 当前机器上所有的 jvm 进程信息

jcmd 
jcmd -l
jps 

查看性能统计 jcmd pid PerfCounter.print

命令:jcmd pid PerfCounter.print
描述:查看指定进程的性能统计信息。

列出当前运行的 java 进程可以执行的操作 jcmd PID help

命令:jcmd PID help

查看具体命令的选项 jcmd 11772 help JFR.dump

如果想查看命令的选项,比如想查看 JFR.dump 命令选项,可以通过如下命令:
jcmd 11772 help JFR.dump

通知垃圾回收 jcmd PID GC.run

命令:jcmd PID GC.run
描述:对 JVM 执行 java.lang.System.gc()
告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的。

强制垃圾回收 jcmd PID GC.run_finalization

命令:jcmd PID GC.run_finalization
描述: 对 JVM 执行 java.lang.System.runFinalization()
执行一次finalization操作,相当于执行java.lang.System.runFinalization()

---


jconsole工具使用

jconsole介绍

  • Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。
  • 它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗。
  • 从命令行直接输入jconsole,打开客户端

jvisualvm工具

jvisualvm介绍

  • VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的).
  • 从命令行直接输入jvisualvm,打开客户端

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此工具我不再更新,里面大多数方法我迁移到了hutool工具包中,而其中一些不常用的功能被遗弃,项目暂留做为以后参考。 common-tools 一、数据库工具类 1、com.baijob.commonTools.db.ds C3p0Ds 和 DruidDs分别是两种连接池的实现,依赖于数据库配置文件,配置文件的样例参考config/db-example.setting 使用时将db-example.setting复制于${classpath}/config/db.setting,按照配置文件中的说明替换相应值 如果使用Druid,则需参考druid-example.setting创建${classpath}/config/druid.setting文件,详情请参考官方文档 使用C3P0则需要参考c3p0-config-example.xml创建${classpath}/c3p0-config.xml来调节C3P0参数 此时即可调用C3p0Ds.getDataSource()或DruidDs.getDataSource()方法获得默认的数据源 如果要自定义数据库配置文件的参数,请调用相应的init(),传入相关参数 注:Setting对象请参考与之对应的章节 2、com.baijob.commonTools.db.DbUtil 数据库工具类,提供了关闭方法:关闭可以传入多个参数,关闭的顺序是按照参数的顺序来的,用于一次性关闭Connnection、Statement、ResultSet等 newSqlRunner方法用于快速新建一个SqlRunner(此类介绍参考下问) 3、com.baijob.commonTools.db.DsSetting,用于读取db.setting文件辅助类,内部使用 4、com.baijob.commonTools.db.SqlRunner类参考Apache的DbUtils工具包,封装了常用的增删改查方法,与com.baijob.commonTools.db.RsHandler配合使用 com.baijob.commonTools.db.RsHandler接口与Apache的DbUtils的ResultSetHandler等价,抽象结果集处理。 二、邮件工具类 1、com.baijob.commonTools.mail.MailAccount 邮件账户类。 可以调用MailAccount(String accountSettingFileBaseClassLoader)读取相对路径的Setting文件,配置参考mailAccount-example.setting 2、com.baijob.commonTools.mail.MailUtil邮件发送工具类,方法请参考注释 此工具类依赖javax.mail,请参考pom.xml添加依赖或手动下载 三、网络相关工具类 1、com.baijob.commonTools.net.AccessControl访问控制,基于配置文件,可以设定IP白名单或黑名单,可以通过配置文件实现简单的账户验证。 配置文件请参考access-example.xml 2、com.baijob.commonTools.net.Connector 连接对象实体类,有host、端口、用户名、密码等属性 3、com.baijob.commonTools.net.HtmlUtil HTML工具类,暂时只提供特殊字符转义 4、com.baijob.commonTools.net.SocketUtil socket工具类。 isUsableLocalPort() 检测本地某个端口是否可用(可用是指没有被其他程序占用) isValidPort()是否是符合规范的端口号 longToIpv4()将long转换为ipv4地址,反方法是ipv4ToLong() netCat()简易的数据发送方法 5、com.baijob.commonTools.net.SSHUtil SSH相关工具类 getSession()获得一个SSH会话 bindPort()将远程主机的端口映射到本地某个端口 6、com.baijob.commonTools.net.URLUtil 将相对、绝对路径转换为URL对象,用于网络或文件流的读写,Setting的配置依赖此工具包 四、线程相关工具类 1、com.baijob.commonTools.thread.BaseRunnable 此类实现了Runnable接口,扩展了功能。 增加名称、ID,调用次数和时间统计、线程停止接口等,并且在线程运行时,不允许此线程第二次启动。 2、com.baijob.commonTools.thread.Executor 线程池工具类 调用静态方法execute()启动线程,此线程在公共的线程池中执行 若想自定义线程池大小或独立控制,可调用newExecutor()实例化一个线程池 excAsync()执行一个异步方法 3、com.baijob.commonTools.thread.SyncQueue 阻塞队列,简化了JDK的BlockingQueue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值