Java常用命令汇总

JDK 工具命令

jps(Java Virtual Machine Process Status Tool)

命令示例:jps -l 应用场景:列出当前系统中所有Java进程的PID和主类名,常用于快速定位Java应用的进程ID。

javac(Java Compiler)

命令示例:javac Main.java 应用场景:将Java源文件编译为字节码文件(.class文件),是开发过程中最基础的编译工具。

java(Java Application Launcher)

命令示例:java -jar app.jar 应用场景:运行已编译的Java程序或可执行的JAR包,支持设置JVM参数如内存大小(-Xmx)。

javap(Java Class File Disassembler)

命令示例:javap -c MyClass 应用场景:反编译.class文件,查看字节码指令,用于调试或分析代码逻辑。

jstack(Java Stack Trace)

命令示例:jstack -l <pid> 应用场景:生成Java进程的线程快照,用于分析线程死锁或高CPU占用问题。

jmap(Java Memory Map)

命令示例:jmap -heap <pid> 应用场景:查看Java堆内存使用情况,包括分代内存统计,常用于内存泄漏分析。

jstat(JVM Statistics Monitoring Tool)

命令示例:jstat -gc <pid> 1000 5 应用场景:监控JVM垃圾回收状态,每1秒输出一次,共5次,用于GC性能调优。

jinfo(Java Configuration Info)

命令示例:jinfo -flags <pid> 应用场景:查看或动态修改JVM参数(如-XX:+PrintGCDetails),适用于运行时调试。

jconsole(Java Monitoring and Management Console)

命令示例:jconsole 应用场景:图形化监控JVM内存、线程、类加载等信息,适合直观分析运行时状态。

jcmd(JVM Diagnostic Command Tool)

命令示例:jcmd <pid> VM.flags 应用场景:多功能诊断工具,可获取JVM属性、线程转储、堆转储等。


应用运行命令

运行普通类文件

命令示例:java -cp .:lib/* com.example.Main 应用场景:指定类路径(含依赖库)启动主类,适用于未打包的非模块化项目。

运行可执行JAR

命令示例:java -Xms512m -Xmx1024m -jar app.jar --spring.profiles.active=prod 应用场景:启动Spring Boot等打包应用,设置堆内存大小和激活生产环境配置。

动态附加代理

命令示例:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar app.jar 应用场景:启用远程调试端口(5005),供IDE连接进行调试。

模块化应用运行

命令示例:java --module-path mods -m com.module/com.module.Main 应用场景:运行JPMS模块化应用,需指定模块路径和主模块。

性能分析启动

命令示例:java -XX:+FlightRecorder -XX:StartFlightRecording=duration=60s,filename=myrecording.jfr -jar app.jar 应用场景:启用Java Flight Recorder进行性能分析记录,生成JFR文件供后续分析。

系统属性传递

命令示例:java -Dlog4j.configurationFile=/path/to/log4j2.xml -Duser.timezone=GMT+8 -jar app.jar 应用场景:设置日志配置文件和时区等系统属性。


典型组合场景

  1. 内存泄漏分析

    jmap -dump:live,format=b,file=heap.hprof <pid>
    jstack <pid> > thread_dump.txt
    

    生成堆转储和线程转储,结合MAT工具分析。

  2. GC调优监控

    jstat -gcutil <pid> 1s
    java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar app.jar
    

    实时监控GC状态并调整G1垃圾回收器参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89318.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Llama 2:开放基础模型与微调聊天模型

温馨提示&#xff1a; 本篇文章已同步至"AI专题精讲" Llama 2&#xff1a;开放基础模型与微调聊天模型 摘要 在本研究中&#xff0c;我们开发并发布了 Llama 2&#xff0c;一组预训练和微调的大型语言模型&#xff08;LLMs&#xff09;&#xff0c;其规模从 70 亿参…

ThinkPHP 8 在 Apache 下启用伪静态

ThinkPHP 8 在 Apache 下启用伪静态&#xff0c;需要配置 .htaccess 文件并确保 Apache 支持 URL 重写。以下是详细设置步骤&#xff1a;1. 启用 Apache 重写模块首先确保 Apache 的 mod_rewrite 模块已启用。编辑 Apache 配置文件&#xff08;通常是 /etc/apache2/apache2.con…

Android开发中Retrofit使用方法与底层原理详解

Retrofit 是 Android 开发中一个 类型安全、基于注解、高度解耦 的 RESTful HTTP 客户端库&#xff0c;由 Square 公司开发。它极大地简化了 Android 应用与 Web 服务进行网络交互的过程。 核心价值&#xff1a; 声明式 API 定义&#xff1a; 使用 Java/Kotlin 接口和注解描述 …

基于FPGA的IIC控制EEPROM读写(2)

基于FPGA的IIC控制EEPROM读写 文章目录基于FPGA的IIC控制EEPROM读写一、EEPROM简介二、代码实现——个人理解1、状态机2、仿真效果3、上板验证4、代码top.viic_master.vuart三、代码实现——复用性较高的IIC模块1、框架设计2、状态机设计3、仿真效果4、上板验证5、代码top.viic…

C# 界面程序在23H2型号系统中无法退出

20250716记录 环境&#xff1a;c# winform问题描述&#xff1a;主界面退出直接使用了Environment.Exit(0); 程序假死&#xff0c;无法关闭解决措施&#xff1a;//使用 this.Close();以下代码目标&#xff1a;执行完程序自身后&#xff0c;删除指定文件&#xff08;可用于程序文…

Kafka——集群核心参数配置

引言在分布式系统中&#xff0c;Kafka 凭借其高吞吐量、低延迟和强大的扩展性&#xff0c;成为数据管道和流处理的首选解决方案。然而&#xff0c;要充分发挥 Kafka 的性能和稳定性&#xff0c;正确配置集群参数至关重要。为什么参数配置如此重要&#xff1f;Kafka 的参数配置直…

单臂路由实现VLAN互通实验

实验拓扑图实验需求&#xff1a;按照图示为 PC3 和 PC4 配置 IP 地址和网关PC3 属于 Vlan10&#xff0c;PC4 属于 Vlan20&#xff0c;配置单臂路由实现 Vlan10 和 Vlan20 三层互通PC3 和 PC4 可以互通实验步骤&#xff1a;1.PC 配置 IP 地址2.PC3 属于 Vlan10&#xff0c;PC4 属…

基于渐进式迁移学习网络(PTLN)​的小样本故障诊断模型

目录 一、研究背景与挑战​ ​二、创新方法:渐进式迁移学习网络(PTLN)​​ ​1. 核心架构​编辑 ​2. 训练优化​ 三、核心代码 四、实验结果与优势​ ​1. 数据集​ ​2. 性能对比​ ​3. 关键验证​ 五、工程价值与未来方向​ 六、补充信息​ 一、研究背景与挑…

网络原理 —— HTTP

通过网络初识&#xff0c;我们认识了网络的协议栈&#xff0c;TCP/IP 分为五层&#xff1a;应用层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层&#xff0c;物理层。也介绍了其中的关键协议。而这些协议的理解&#xff0c;是我们写网络代码的基础。 应用层&…

docker--安装--原理

安装 链接 启动之后&#xff0c;docker状态查看&#xff1a; sudo systemctl status docker 添加普通用户到docker用户组&#xff1a; sudo usermod -aG docker $USER# 重启或者使用以下命令刷新组权限&#xff1a;newgrp docker 原理

Java并发第一篇(从零开始:一文读懂Java并发编程核心基础)

从零开始&#xff1a;一文读懂Java并发编程核心基础一. 为什么需要并发编程&#xff1f;二. 并发编程的“另一面”&#xff1a;挑战与代价2.1 频繁的上下文切换2.2 线程安全问题&#xff08;如&#xff1a;死锁&#xff09;三. 夯实基础&#xff1a;必须掌握的核心概念与操作3.…

【删库跑路】一次删除pip的所有第三方库

进入命令行&#xff0c;先list看下库存pip list导出所有的第三方库至一文件列表pip freeze >requirements.txt按照列表卸载所有库pip uninstall -r requirements.txt -y再list看下&#xff0c;可见库存已清空

python 【技术面试题和HR面试题】➕列表操作、条件判断、循环、函数定义编程题

1.技术面试题 &#xff08;1&#xff09;解释Linux中的进程、线程和守护进程的概念&#xff0c;以及如何管理它们&#xff1f; 答&#xff1a; 进程 概念&#xff1a;程序运行的实例&#xff0c;有独立资源&#xff08;如内存&#xff09;&#xff0c;是系统调度的基本单位。 管…

Debian 12中利用dpkg命令安装MariaDB 11.8.2

MariaDB 11.8解决了2038问题&#xff0c;即在32位系统中将timestamp从2038-01-19 03:14:07 UTC扩展到2106-02-07 06:28:15 UTC&#xff0c;向后延长了68年。由于写此文时Debian 12的源中还没有MariaDB 11.8,采用源码编译又太费时&#xff0c;可用二进制码或dpkg安装 .下面简要记…

Go语言高并发聊天室(三):性能优化与压力测试

Go语言高并发聊天室&#xff08;三&#xff09;&#xff1a;性能优化与压力测试 &#x1f3af; 本篇目标 在前两篇文章中&#xff0c;我们完成了聊天室的基础功能。本篇将深入性能优化&#xff0c;实现真正的高并发&#xff1a; &#x1f50d; 性能瓶颈分析⚡ 关键优化技术&…

【leetcode】852. 山脉数组的封顶索引

文章目录题目题解1. 遍历2. 二分查找题目 852. 山脉数组的封顶索引 给定一个长度为 n 的整数 山脉 数组 arr &#xff0c;其中的值递增到一个 峰值元素 然后递减。 返回峰值元素的下标。 你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。 示例 1&#xff1a; 输入&a…

Java期末考试准备

文章目录Java期末考试准备一、Java的输入.next()输入.nextLine()输入区别补充二、Java的输出三、类中常写方法toString()equals()其他四、容器/数组五、继承六、静态属性、方法.七、抽象类八、接口九、初始化模块十、泛型考完结束语Java学习历程注:这篇文章本来是写给同学的&am…

飞算JavaAI进阶:重塑Java开发范式的AI革命

引言&#xff1a;当代码生成进入"自动驾驶"时代 在2025年的Java开发领域&#xff0c;一场由AI驱动的革命正在重塑传统开发范式。当GitHub Copilot还在通过代码补全提升效率时&#xff0c;飞算JavaAI已实现从需求分析到完整工程代码生成的"端到端"闭环。这款…

如何在银河麒麟桌面系统中启用 sudo 密码的星号反馈

引文 我们在银河麒麟桌面操作系统上使用 sudo 命令时&#xff0c;都遇到过这样的困扰&#xff1a;输入密码时光标一动不动&#xff0c;屏幕上没有任何提示&#xff08;没有星号 *&#xff0c;也没有任何字符&#xff09;&#xff1f;就像在黑暗中摸索钥匙孔一样&#xff0c;心里…

二刷 黑马点评 秒杀优化

优化逻辑 把耗时较短的逻辑判断放入redsi中&#xff0c;比如库存是否足够以及是否一人一单&#xff0c;只要这样的逻辑完成&#xff0c;就代表一定能下单成功&#xff0c;我们就将结果返回给用户&#xff0c;然后我们再开一个线程慢慢执行队列中的信息 问题&#xff1a; 如何快…