【Java可执行程序命令】学习路线攻略,史诗级别全汇总 ~-LMLPHP

📗文章指路

《【Java可执行命令】(一)编译工具javac:从源代码到字节码,深入解析Java编译工具 javac ~》
《【Java可执行命令】(二)启动应用程序java: 深入解析应用程序启动工具 java命令 ~》
《【Java可执行命令】(三)API文档生成工具javadoc: 深入解析Java API文档生成工具javadoc ~》
《【Java可执行命令】(四)反编译工具javap:深入解析应用程序反编译工具javap ~》
《【Java可执行命令】(五)打包部署工具 jar:深入解析应用程序打包、分发和部署工具jar ~》
《【Java可执行命令】(六)调试工具 jdb:深入解析应用程序调试工具jdb ~》
《【Java可执行命令】(七)C头文件创建工具 javah:以Java本机接口(JNI)规范创建C头文件,深入解析创建工具javah ~》
《【Java可执行命令】(八)JWS应用程序启动工具 javaws:深入解析Java Web Start应用程序的启动工具javaws ~》
《【Java可执行命令】(九)安装包创建工具 javapackager:使用 JavaPackager 工具打包和部署自包含的 Java 应用程序,支持各种选项来指定相关配置~》
《【Java可执行命令】(十)JAR文件签名工具 jarsigner:通过数字签名及验证保证代码信任与安全,深入解析 Java的 jarsigner命令~》
《【Java可执行命令】(十一)Java 密钥库和证书管理工具keytool:玩转密钥库和证书管理,深入解析keytool工具的应用与技巧~》
《【Java可执行命令】(十二)依赖分析工具jdeps:通过静态分析字节码并提取相关信息来实现依赖分析 ~》
《【Java可执行命令】(十三)策略工具policytool:界面化创建、编辑和管理策略文件中的权限和配置 ~》
《【Java可执行命令】(十四)脚本执行工具jrunscript :在命令行环境下交互式执行一些简单的脚本或测试代码片段~》
《【Java可执行命令】(十五)Java进程状态信息获取工具 jps:获取和监控Java进程的状态信息 ~》
《【Java可执行命令】(十六)诊断命令请求发送工具 jcmd:提供一种简单而强大的方式来管理和监控 Java 进程 ~》
《【Java可执行命令】(十七)JVM运行时信息动态维护工具 jinfo:一个维护 JVM 相关的配置参数和系统属性的工具,辅助故障排除、诊断和优化 ~》
《【Java可执行命令】(十八)可视化监控和管理工具 jconsole:获取 JVM的内存使用情况、线程活动、GC 行为等重要指标的可视化工具 ~》
《【Java可执行命令】(十九)堆转储文件分析工具 jhat:将Java堆转储文件加载到内存,并在浏览器中提供一个交互式界面进行信息浏览及分析 ~》
《【Java可执行命令】(二十)堆转储快照文件及堆信息查看工具 jmap:生成多格式堆转储文件、打印类加载器信息及查看共享对象映射信息 ~》
《【Java可执行命令】(二十一)线程快照生成工具 jstack:帮助开发人员分析和排查线程相关问题(死锁、死循环、线程阻塞…)》
《【Java可执行命令】(二十二)JVM统计信息监视工具 jstat:通过连接到Java虚拟机的本地媒介,获取并显示关于堆、垃圾回收、类加载、编译器等方面的统计信息~》

Java可执行命令

1、编译工具 javac

  • 作用:将 Java 源代码编译为可执行的字节码文件
  • 语法:javac [options] <sourcefiles>
  • 常用参数
    • -d:指定编译后字节码文件的输出目录;
    • -classpath <path>:指定编译时查找类、接口和包文件的路径;
    • -sourcepath <path>:指定查找源文件的路径;
    • -target <version>:指定生成的Java字节码文件的目标版本;
    • -g:在生成字节码文件时包含调试信息。

2、程序启动工具 java

  • 作用:加载和执行字节码文件,并在JVM中运行这些文件
  • 语法:java [options] classname [arguments]
  • 常用参数
    • -cp <路径>或 -classpath <路径>:指定类路径来加载Java类文件;
    • -D<名称>=<值>:设置系统属性;
    • -X:对非标准参数的支持;
    • -verbose[:class|gc|jni]:启用不同类型的详细输出;
    • -version:显示当前安装的Java版本信息;
    • -ea[:<packagename>...|:<classname>]:在指定的包或类上启用断言;
    • -da[:<packagename>...|:<classname>]:在指定的包或类上禁用断言。

3、API文档生成 javadoc

  • 作用:通过分析源代码中的注释来生成API文档
  • 语法: javadoc [options] [packagenames] [sourcefiles] [@files]
  • 常用参数
    • -d <directory>:指定生成的文档输出目录并指定要处理的源代码文件;
    • -sourcepath <pathlist>:指定源代码的路径列表,以及要处理的源文件;
    • -classpath <pathlist>:指定编译时所需的类路径,以及要处理的源代码文件;
    • -link <url>:将外部链接添加到生成的文档中;
    • -version:在生成的文档中包含Java平台的版本信息。

4、反编译工具 javap

  • 作用:将Java类文件解析为易于阅读的文本形式,展示其中的信息以及反编译出类的结构、方法、字段、常量池等信息
  • 语法:javap [options] <classname>
  • 常用参数
    • -l:在输出中显示行号和局部变量表信息;
    • -c:在输出中显示字节码指令信息;
    • -s:显示与指定类相关的字节码指令及其源代码的符号信息;
    • -verbose:在输出中显示更详细信息的命令,它可以显示与指定类相关的字节码指令、常量池、方法、字段和其他类信息;
    • -version:查看类文件的版本信息。

5、打包部署工具 jar

  • 作用:将多个Java类、资源文件和其他依赖项打包成一个单独的归档文件。方便在Java平台上进行打包、分发和部署应用程序
  • 语法:jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
  • 常用参数
    • -c:创建jar文件;
    • -t:列出jar文件内容;
    • -i:生成jar文件的索引信息;
    • -v:输出详细信息;
    • -f:指定jar文件名;
    • -e:设置可执行类(主类)的入口点。

6、调试工具 jdb

  • 作用:一个用于调试Java程序的命令行工具,允许开发者使用各种调试功能,例如设置断点、查看变量和堆栈信息、执行单步调试、监视变量值
  • 语法:jdb [options] <class> [arguments]
  • 常用参数
    • -sourcepath <path>:指定源代码的路径。
  • 调试指令
    • run [class [args]]:运行 Java 应用程序进行调试;
    • print <expr>:在调试过程中打印表达式的值;
    • stop at <class>:
    • watch [access|all] <class id>.<field name>:设置监视点以在字段访问时触发暂停;
    • step:逐语句执行代码并进入方法调用。

7、C头文件创建 javah

  • 作用:生成包含 JNI(Java Native Interface)函数原型的头文件,以便在使用 JNI 连接 Java 和本地代码时进行编译和链接
  • 语法:javah [options] <classes>
  • 常用参数
    • -o <file>:指定输出的头文件名称;
    • -classpath <path>:设置查找类文件的路径;
    • -jni:表示生成用于 JNI 的头文件。

8、JWS应用程序启动 javaws

  • 作用:使用JNLP文件作为输入,并根据该文件描述的配置和资源来启动和运行相应的Java应用程序
  • 语法:javaws [运行选项] <jnlp-file> javaws [控制选项]
  • 常用参数
    • -Xnosplash:运行时不显示启动屏幕;
    • -wait:等待所有应用程序实例都退出后再退出javaws;
    • -import [导入选项] <jnlp-file>:将应用程序导入高速缓存。

9、安装包创建 javapackager

  • 作用:将Java应用程序打包成可执行或安装文件,使其能够在目标操作系统上以独立的方式运行
  • 语法: javapackager -command [-options]
  • 常用参数
    • -createjar [-options]:打包程序根据其他参数生成 jar 档案;
    • -deploy [-options]:打包程序根据其他参数生成 jnlp 和 html 文件;
    • -signJar [-options]:对 JAR 文件进行签名。

10、JAR文件签名 jarsigner

  • 作用:对JAR文件进行数字签名
  • 语法:jarsigner [-options] jar-file alias
  • 常用参数
    • -keystore <url>:指定密钥库 (Keystore) 文件的路径和名称;
    • -storepass <口令>:指定密钥库的密码;
    • -keypass <口令>:指定密钥的密码;
    • -tsa <url>:指定时间戳服务器的URL;
    • -verify:验证已签名的 JAR 文件的完整性和有效性。

11、密钥库和证书管理 keytool

  • 作用:生成、管理和操作数字证书,以及实现对保护资源进行安全访问的加密和身份验证
  • 语法:keytool [-command_name] [命令] [参数]
  • 常用指令
    • -certreq:生成证书请求;
    • -exportcert:导出证书;
    • -genkeypair:生成密钥对;
    • -importcert:导入证书或证书链;
    • -list:列出密钥库中条目。

12、依赖分析工具 jdeps

  • 作用:通过静态分析字节码并提取相关信息来实现依赖分析
  • 语法:jdeps [options] <classfiles or jars>...
  • 常用参数
    • -dotoutput <dir>:DOT 文件输出的目标目录;
    • -s:仅输出被依赖对象概要;
    • -v:输出所有类级别被依赖对象;
    • -cp < path>:指定查找类文件的位置。

13、策略工具 policytool

  • 作用:界面化创建、编辑和管理策略文件中的权限和配置
  • 语法:policytool 直接进入图形化界面

14、脚本执行 jrunscript

  • 作用:在命令行环境下交互式执行一些简单的脚本或测试代码片段
  • 语法:jrunscript [options] [arguments...]
  • 常用参数
    • -l <language>:使用指定的脚本语言;
    • -e <script>:执行给定内联脚本;
    • -f <script file>:执行给定的外部脚本文件。

15、Java进程状态信息获取 jps

  • 作用:查看运行在Java虚拟机(JVM)中的所有Java进程的信息
  • 语法:jps [-q] [-mlvV] [<hostid>]
  • 常用参数
    • -q:仅显示进程ID,省略主类的全限定名;
    • -m:显示传递给主类main()方法的参数;
    • -l:显示完整的类名而非缩写;
    • -v:显示虚拟机的启动参数;
    • -V:显示 jps 工具的版本信息。

16、发送诊断命令请求 jcmd

  • 作用:通过命令行发送诊断命令给正在运行的 Java 进程,从而执行各种操作,例如生成线程转储、查看堆内存使用情况、触发 GC、打印系统属性
  • 语法:jcmd <pid|main class> <command> [<command arguments>]
  • 常用参数
    • -l:列出正在运行的 Java 进程;
    • help:列出特定进程的诊断命令列表;
    • <command>:执行诊断命令。

17、JVM运行时信息动态维护 jinfo

  • 作用:允许用户动态查询和修改 JVM 的运行时信息,包括系统属性、堆参数、环境变量、启动参数等
  • 语法
    • jinfo [option] <pid>:连接到正在运行的进程;
    • jinfo [option] <executable <core>:连接到核心文件;
    • jinfo [option] [server_id@]<remote server IP or hostname>:连接到远程调试服务器。
  • 常用参数
    • -flags:查看进程的启动参数;
    • -sysprops:查看进程的系统属性;
    • -flag <name> :查看特定虚拟机参数的值;
    • -flag [+/-]<name>:启用或禁用特定虚拟机参数的值。

18、可视化监控和管理 jconsole

  • 作用:提供了可视化的方式来获取有关 Java 应用程序的各种信息,包括内存使用情况、线程活动、GC 行为等重要指标
  • 语法:jconsole [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ... ]

19、堆转储文件分析 jhat

  • 作用:将Java堆转储文件加载到内存中,并在网页浏览器中提供一个交互式的界面进行查看和分析
  • 语法:jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>
  • 常用参数
    • -J<flag>:将参数直接传递到运行时系统。例如, -J-mx512m 使用512MB的最大堆大小;
    • -port <port>:设置HTTP服务器的端口。默认值为7000。

20、堆转储快照文件及堆信息查看 jmap

  • 作用:连接到运行中的Java进程,生成指定类型的Java堆转储文件
  • 语法
    • jmap [option] <pid>:连接到正在运行的进程;
    • jmap [option] <executable <core>:连接到核心文件;
    • jmap [option] [server_id@]<remote server IP or hostname>:连接到远程调试服务器。
  • 常用参数
    • -heap:打印Java堆摘要信息;
    • -histo[:live]:打印Java堆对象的直方图;如果指定"live"子选项,则只计算存活对象;
    • -dump:<dump-options>:以hprof二进制格式导出Java堆;
    • -J<flag>:将参数直接传递给运行时系统。

21、线程快照生成工具 jstack

  • 作用:一项用于生成JVM线程快照的诊断工具。帮助开发人员分析和排查应用程序中的线程相关问题,如死锁、死循环、线程阻塞等
  • 语法
    • jstack [-l] <pid>:连接到正在运行的进程;
    • jstack -F [-m] [-l] <pid>:连接到挂起的进程;
    • jstack [-m] [-l] <executable> <core>:连接到核心文件;
    • jstack [-m] [-l] [server_id@]<remote server IP or hostname>:连接到远程调试服务器。
  • 常用参数
    • -F:以强制线程转储。当 jstack<pid>没有响应时使用(进程挂起);
    • -m:打印java和本机框架(混合模式);
    • -l:长清单,打印有关锁的其他信息。

22、JVM统计信息监视 jstat

  • 作用:通过连接到Java虚拟机的本地媒介,获取并显示关于堆、垃圾回收、类加载、编译器等方面的统计信息
  • 语法
    • jstat -help|-options
    • jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
  • 可选参数
    • -gc:垃圾回收统计信息;
    • -class:类加载和卸载信息;
    • -compiler:JIT编译器执行信息;
    • -gcutil:垃圾回收的堆情况。

🌾 总结

以下是关于Java可执行命令的简要总结:


【Java可执行程序命令】学习路线攻略,史诗级别全汇总 ~-LMLPHP
08-10 21:53