> 文章列表 > Java命令大全

Java命令大全

Java命令大全

文章目录

  • 常用Java命令
    • javac
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项
    • java
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项
    • javap
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项
    • jar
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项
    • javadoc
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项
    • jps
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项
    • jstat
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项
    • jconsole
      • 基本语法
      • 使用示例
      • 参数说明
    • jstack
      • 基本语法
      • 使用示例
      • 参数说明
      • 常见选项

常用Java命令

javac

javac命令用于将Java源代码编译成Java字节码文件(.class文件),以便在Java虚拟机(JVM)上运行。

基本语法

javac [options] source_file(s)

使用示例

javac HelloWorld.java

参数说明

  • options:javac命令提供了多个选项来控制编译过程和生成的字节码文件的行为。可以使用javac -help查看所有选项及其说明。

  • source_file(s):指定要编译的源代码文件的路径。可以使用通配符(*)来编译整个文件夹中的所有Java文件。例如,javac *.java会同时编译当前目录中的所有Java文件。

常见选项

  • -d directory:指定编译生成的.class文件的输出目录。

  • -classpath path:指定可供编译器使用的类路径。

  • -source version:指定要编译的Java源代码的版本(例如,-source 8表示使用Java 8的语言功能进行编译)。

  • -target version:指定要生成的字节码文件的Java版本(例如,-target 1.8表示要生成适用于Java 8的字节码文件)。

  • -Xlint:启用编译器警告消息。

  • -verbose:显示编译器的详细输出信息。

javac命令是编写和编译Java代码的必备工具之一。掌握其用法可以帮助开发人员更好地进行Java开发和调试。

java

java命令用于启动Java虚拟机并执行Java程序。使用java命令可以在命令行中直接运行编译后的Java程序。

基本语法

java [options] class [args...]

使用示例

java HelloWorld

参数说明

  • options:Java命令提供了多个选项来控制Java虚拟机和应用程序的行为。可以使用java -help查看所有选项及其说明。

  • class:要运行的Java类名。

  • args…:传递给主方法的参数。这些参数将作为字符串数组传递给main()方法。

常见选项

  • -classpath path:指定Java虚拟机应该搜索类文件的路径。与javac编译器选项-cp相同。

  • -Xmx size:指定堆大小的最大值,以字节为单位。例如,-Xmx1024m表示堆大小的最大值为1024 MB。

  • -Xms size:指定初始堆大小,以字节为单位。

  • -version:查看Java版本信息。

  • -jar file:执行指定的JAR文件。

  • -Dproperty=value:设置系统属性。例如,-Djava.awt.headless=true表示启用无头模式。

java命令是Java开发和调试的重要工具之一。熟练掌握其用法可以帮助开发人员更好地编写和运行Java程序。

javap

javap命令用于查看编译后的Java类文件的信息。它可以解析字节码文件,并显示有关类及其成员的信息。

基本语法

javap [options] class

使用示例

javap HelloWorld

参数说明

  • options:javap命令提供了多个选项来控制输出的内容和格式。可以使用javap -help查看所有选项及其说明。

  • class:要查看的类名。该类必须已经编译成.class文件,否则javap将无法解析它。

常见选项

  • -c:以指令列表的形式打印代码。这对于特定的“bytecode hacking”任务非常有用。

  • -l:以行号和本地变量表的形式打印代码。

  • -s:输出内部类型签名。

  • -verbose:以更详细的方式输出类信息。

  • -classpath path:指定类路径和搜索位置。

  • -J:向Java虚拟机传递选项。例如,-J-Xms1024m会设置最小堆大小为1024 MB。

  • -constants:只显示常量池中的常量,而不显示方法体的内容。

使用javap命令可以查看Java类的字节码信息,包括类名、父类、接口、构造函数、字段、方法名称和描述符等。熟练掌握javap命令可以帮助开发人员更好地理解Java应用程序的工作原理,并进一步了解Java虚拟机的内部结构。

jar

jar命令用于创建和管理JAR格式的归档文件,也可以用于解压缩包和对JAR文件进行签名等操作。

基本语法

jar [options] archive_file file(s)

使用示例

jar cf myJar.jar *.class

参数说明

  • options:jar命令提供了多个选项来控制生成的JAR文件的内容和行为。可以使用jar -help查看所有选项及其说明。

  • archive_file:生成的JAR文件的名称。

  • file(s):需要添加到JAR文件中的文件或目录列表。

常见选项

  • c:表示新建一个JAR文件。

  • f:指定JAR文件的文件名以及可选路径

  • v:输出生成过程中处理的文件列表。

  • m:表示需要保留manifest文件。

  • x:从JAR文件中提取指定的文件。

  • t:列出JAR文件中存储的文件。

  • u: 更新现有的JAR文件中的文件。

  • i:为已有的JAR文件创建索引文件

使用jar命令还可以对JAR文件进行签名,以提高应用程序的安全性,防止被篡改。此外,在发布Java程序时,将代码打包成一个JAR文件也是很常见的做法,以便简化部署和分发过程。

jar命令是Java开发和部署的重要工具之一。熟练掌握其用法可以帮助开发人员更好地管理JAR文件和Java程序的部署。

javadoc

javadoc命令用于生成Java文档。它可以分析源代码中的注释,并以HTML格式输出API文档。

基本语法

javadoc [options] source_file(s)

使用示例

javadoc HelloWorld.java

参数说明

  • options:javadoc命令提供了多个选项来控制生成的文档内容和格式。可以使用javadoc -help查看所有选项及其说明。

  • source_file(s):指定要生成文档的源代码文件的路径。可以使用通配符(*)来生成整个文件夹中的所有源文件文档。

常见选项

  • -d directory:指定生成文档的输出目录。如果没有指定,则默认在当前目录中创建一个名为“doc”的文件夹。

  • -classpath path:指定可供javadoc使用的类路径。

  • -subpackages pkg1:pkg2:…:指定需要包括的子包。

  • -private:生成私有成员文档。

  • -sourcepath path:指定源文件的搜索路径。这对于在不同的目录中使用源文件非常有用。

  • -author:在生成的文档中包含作者信息。

  • -version:在生成的文档中包含版本信息。

使用javadoc命令可以快速生成Java API文档,方便阅读和使用。编写清晰明了的注释并生成API文档是Java开发中的一个关键过程,因为它可以提高代码的可读性和可维护性,方便团队协作。

jps

jps命令用于列出当前系统中正在运行的Java进程。它可以显示正在运行的Java虚拟机(JVM)以及它们的进程ID。

基本语法

jps [options]

使用示例

jps -v

参数说明

  • options:jps命令提供了多个选项来控制输出的内容和格式。可以使用jps -help查看所有选项及其说明。

常见选项

  • -q:只显示进程ID,而不显示JVM名称。

  • -m:显示启动时传递给主类的参数。

  • -l:显示主类的完全限定名以及传递给主类的参数。

  • -v:显示JVM启动时的命令行信息。

  • -V:显示jps版本信息。

使用jps命令可以快速查看当前系统中正在运行的Java进程,并获取它们的进程ID,用于在需要时管理或诊断Java应用程序。jps命令非常简单实用,但对于几乎所有的Java应用都会起到帮助作用。

jstat

jstat命令用于监视Java应用程序的性能。它可以使用不同的选项打印出Java虚拟机(JVM)中各个内部组件的性能统计数据。

基本语法

jstat [options] pid [interval [count]]

使用示例

jstat -gcutil 1234

参数说明

  • options:jstat命令提供了多个选项来控制输出的内容和格式。可以使用jstat -options查看所有选项及其说明。

  • pid:正在运行的Java进程ID(可以使用jps命令获取)。

  • interval:可选参数,指定两次采样之间的时间间隔(以毫秒为单位)。如果省略,则默认为1秒。

  • count:可选参数,指定采样次数。如果省略,则默认为无限次。

常见选项

  • -class:显示类加载、卸载情况以及持有类加载器的内存池的容量。

  • -compiler:显示JIT编译器编译代码的方法以及编译时间。

  • -gc:显示各个内存池的使用情况、申请内存、释放内存情况等信息。

  • -gccapacity:显示整个堆(包括新生代和老年代)和各个内存池的容量信息。

  • -gcutil:显示整个堆(包括新生代和老年代)和各个内存池的使用情况。

使用jstat命令可以实时查看Java应用程序的性能状况,例如堆内存的使用情况、类加载器的状态、JIT编译器运行时间等重要信息,有助于开发人员及时发现性能问题并进行优化。jstat命令非常灵活,可以根据不同的选项进行配置,方便获取需要的数据。

jconsole

jconsole命令是Java开发环境(JDK)自带的图形化监视工具,它提供了一个友好的用户界面,用于可视化地监控和管理Java应用程序。它可以实时显示Java应用程序的性能指标、内存使用情况、线程状态等信息,还可以进行远程监控。

基本语法

jconsole [optionally, hostname:port or service:jmx:rmi:///…]

使用示例

jconsole

参数说明

  • optionally, hostname:port or service:jmx:rmi:///…:可选参数,用于连接到要监控的Java进程。如果忽略此参数,则会打开一个对话框,允许您选择要监视的进程。

使用jconsole命令可以启动Java虚拟机(JVM),并以图形化的方式监视JVM的运行状况。图形界面中提供了各种监视面板,展示当前JVM的CPU使用率、内存使用情况、GC状态等,同时可以查看线程、类、MBean等信息。

除此之外,jconsole还提供了常规操作管理Java应用程序的功能,例如观察垃圾回收、查看堆内存使用情况、分析线程的执行情况等。此外,如要添加可扩展性,则可使用MBeans控制进一步管理应用程序。

jconsole是一种功能齐全、简单易用的监控工具,能够帮助开发团队及时发现并解决Java应用程序中的性能问题。

jstack

jstack命令用于查看Java应用程序的线程信息和调用栈信息。它通常用于分析Java进程出现卡死、死锁等问题时定位问题原因。

基本语法

jstack [ option ] pid

使用示例

  • 查看Java进程的线程堆栈信息:

    jstack 1234
    
  • 将线程堆栈信息输出到指定的文件:

    jstack -F -l 1234 > java_thread_dump.txt
    

参数说明

  • F:指定在无响应状态下强制导出线程Dump(类似于kill -3 PID的效果)
  • l:长列表格式,显示更多的详情信息

常见选项

  • F:当普通输出方式已经失效时,强制输出线程堆栈信息
  • l:风险较高,除了统计信息外,还会打印关于每个线程的锁和监视器(warning)
  • m:会显示每个线程占用的内存情况
  • h:显示在线命令帮助
  • J:直接传递给JVM参数

需要注意的是,jstack命令只能获取Java进程当前的线程信息和调用栈信息,并不能记录历史数据,如果需要跟踪Java进程的历史性能指标,建议使用其他性能分析工具。