Java命令参数

11n、11ac、11ax和11be MCS表(全网最全) 1、无线协商速率介绍及计算 2、附11n、11ac、11ax 完整MCS速率表 阅读详情
Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME/bin/java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。


虚拟机参数分为基本和扩展两类,在命令行中输入JAVA_HOME/bin/java 就可得到基本参数列表,

在命令行输入JAVA_HOME/bin/java –X 就可得到扩展参数列表。

基本参数说明:


-client,-server

这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。相反,server模式启动比client慢,但可获得更高的运行性能。

在windows上,缺省的虚拟机类型为client模式,如果要使用server模式,就需要在启动虚拟机时加-server参数,以获得更高性能,对服务器端应用,推荐采用server模式,尤其是多个CPU的系统。在Linux,Solaris上缺省采用server模式。


-hotspot

含义与client相同,jdk1.4以前使用的参数,jdk1.4开始不再使用,代之以client。


-classpath,-cp

虚拟机在运行一个类时,需要将其装入内存,虚拟机搜索类的方式和顺序如下:

Bootstrap classes,Extension classes,User classes。

Bootstrap 中的路径是虚拟机自带的jar或zip文件,虚拟机首先搜索这些包文件,用System.getProperty("sun.boot.class.path")可得到虚拟机搜索的包名。


Extension是位于jre/lib/ext目录下的jar文件,虚拟机在搜索完Bootstrap后就搜索该目录下的jar文件。用System. getProperty("java.ext.dirs”)可得到虚拟机使用Extension搜索路径。

User classes搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。

-classpath告知虚拟机搜索目录名、jar文档名、zip文档名,之间用分号;分隔。

例如当你自己开发了公共类并包装成一个common.jar包,在使用common.jar中的类时,就需要用-classpath common.jar 告诉虚拟机从common.jar中查找该类,否则虚拟机就会抛出java.lang.NoClassDefFoundError异常,表明未找到类定义。

在运行时可用System.getProperty(“java.class.path”)得到虚拟机查找类的路径。


使用-classpath后虚拟机将不再使用CLASSPATH中的类搜索路径,如果-classpath和CLASSPATH都没有设置,则虚拟机使用当前路径(.)作为类搜索路径。


推荐使用-classpath来定义虚拟机要搜索的类路径,而不要使用环境变量CLASSPATH的搜索路径,以减少多个项目同时使用CLASSPATH时存在的潜在冲突。例如应用1要使用a1.0.jar中的类G,应用2要使用a2.0.jar中的类G,a2.0.jar是a1.0.jar的升级包,当a1.0.jar,a2.0.jar都在CLASSPATH中,虚拟机搜索到第一个包中的类G时就停止搜索,如果应用1应用2的虚拟机都从CLASSPATH中搜索,就会有一个应用得不到正确版本的类G。



-D<propertyName>=value

在虚拟机的系统属性中设置属性名/值对,运行在此虚拟机之上的应用程序可用System.getProperty(“propertyName”)得到value的值。

如果value中有空格,则需要用双引号将该值括起来,如-Dname=”space string”。

该参数通常用于设置系统级全局变量值,如配置文件路径,应为该属性在程序中任何地方都可访问。


-verbose[:class|gc|jni]

在输出设备上显示虚拟机运行信息。

verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下:

[Loaded java.io.FilePermission$1 from shared objects file]

当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。


-verbose:gc在虚拟机发生内存回收时在输出设备显示信息,格式如下:

[Full GC 268K->168K(1984K), 0.0187390 secs]

该参数用来监视虚拟机内存回收的情况。


-verbose:jni在虚拟机调用native方法时输出设备显示信息,格式如下:

[Dynamic-linking native method HelloNative.sum ... JNI]

该参数用来监视虚拟机调用本地方法的情况,在发生jni错误时可为诊断提供便利。



-version

显示可运行的虚拟机版本信息然后退出。一台机器上装有不同版本的JDK时



-showversion

显示版本信息以及帮助信息。



-ea[:<packagename>...|:<classname>]

-enableassertions[:<packagename>...|:<classname>]

从JDK1.4开始,java可支持断言机制,用于诊断运行时问题。通常在测试阶段使断言有效,在正式运行时不需要运行断言。断言后的表达式的值是一个逻辑值,为true时断言不运行,为false时断言运行,抛出java.lang.AssertionError错误。

上述参数就用来设置虚拟机是否启动断言机制,缺省时虚拟机关闭断言机制,用-ea可打开断言机制,不加<packagename>和classname时运行所有包和类中的断言,如果希望只运行某些包或类中的断言,可将包名或类名加到-ea之后。例如要启动包com.foo.util中的断言,可用命令 –ea:com.foo.util 。


-da[:<packagename>...|:<classname>]

-disableassertions[:<packagename>...|:<classname>]

用来设置虚拟机关闭断言处理,packagename和classname的使用方法和-ea相同。



-esa | -enablesystemassertions

设置虚拟机显示系统类的断言。


-dsa | -disablesystemassertions

设置虚拟机关闭系统类的断言。


-agentlib:<libname>[=<options>]

该参数是JDK5新引入的,用于虚拟机装载本地代理库。

Libname为本地代理库文件名,虚拟机的搜索路径为环境变量PATH中的路径,options为传给本地库启动时的参数,多个参数之间用逗号分隔。在Windows平台上虚拟机搜索本地库名为libname.dll的文件,在Unix上虚拟机搜索本地库名为libname.so的文件,搜索路径环境变量在不同系统上有所不同,Linux、SunOS、IRIX上为LD_LIBRARY_PATH,AIX上为LIBPATH,HP-UX上为SHLIB_PATH。


例如可使用-agentlib:hprof来获取虚拟机的运行情况,包括CPU、内存、线程等的运行数据,并可输出到指定文件中,可用-agentlib:hprof=help来得到使用帮助列表。在jre/bin目录下可发现hprof.dll文件。


-agentpath:<pathname>[=<options>]

设置虚拟机按全路径装载本地库,不再搜索PATH中的路径。其他功能和agentlib相同。



-javaagent:<jarpath>[=<options>]

虚拟机启动时装入java语言设备代理。Jarpath文件中的mainfest文件必须有Agent-Class属性。代理类要实现public static void premain(String agentArgs, Instrumentation inst)方法。当虚拟机初始化时,将按代理类的说明顺序调用premain方法。

参见:java.lang.instrument



扩展参数说明


-Xmixed

设置-client模式虚拟机对使用频率高的方式进行Just-In-Time编译和执行,对其他方法使用解释方式执行。该方式是虚拟机缺省模式。



-Xint

设置-client模式下运行的虚拟机以解释方式执行类的字节码,不将字节码编译为本机码。


-Xbootclasspath:path

-Xbootclasspath/a:path

-Xbootclasspath/p:path

改变虚拟机装载缺省系统运行包rt.jar而从-Xbootclasspath中设定的搜索路径中装载系统运行类。除非你自己能写一个运行时,否则不会用到该参数。

/a:将在缺省搜索路径后加上path 中的搜索路径。

/p:在缺省搜索路径前先搜索path中的搜索路径。


-Xnoclassgc

关闭虚拟机对class的垃圾回收功能。


-Xincgc

启动增量垃圾收集器,缺省是关闭的。增量垃圾收集器能减少偶然发生的长时间的垃圾回收造成的暂停时间。但增量垃圾收集器和应用程序并发执行,因此会占用部分CPU在应用程序上的功能。


-Xloggc:<file>

将虚拟机每次垃圾回收的信息写到日志文件中,文件名由file指定,文件格式是平文件,内容和-verbose:gc输出内容相同。




-Xbatch

虚拟机的缺省运行方式是在后台编译类代码,然后在前台执行代码,使用-Xbatch参数将关闭虚拟机后台编译,在前台编译完成后再执行。



-Xms<size>

设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为1024的整数倍并且要大于1MB,可用k(K)或m(M)为单位来设置较大的内存数。初始堆大小为2MB。

例如:-Xms6400K,-Xms256M



-Xmx<size>

设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为1024整数倍,并且要大于2MB。可用k(K)或m(M)为单位来设置较大的内存数。缺省堆最大值为64MB。

例如:-Xmx81920K,-Xmx80M

当应用程序申请了大内存运行时虚拟机抛出java.lang.OutOfMemoryError: Java heap space错误,就需要使用-Xmx设置较大的可用内存堆。


-Xss<size>

设置线程栈的大小,缺省单位为字节。与-Xmx类似,也可用K或M来设置较大的值。通常操作系统分配给线程栈的缺省大小为1MB。

另外也可在java中创建线程对象时设置栈的大小,构造函数原型为Thread(ThreadGroup group, Runnable target, String name, long stackSize)。



-Xprof

输出CPU运行时的诊断信息。



-Xfuture

对类文件进行严格格式检查,以保证类代码符合类代码规范。为保持向后兼容,虚拟机缺省不进行严格的格式检查。


-Xrs

减少虚拟机中操作系统的信号(singals)的使用。该参数通常用在虚拟机以后台服务方式运行时使用(如Servlet)。



-Xcheck:jni

调用JNI函数时进行附加的检查,特别地虚拟机将校验传递给JNI函数参数的合法性,在本地代码中遇到非法数据时,虚拟机将报一个致命错误而终止。使用该参数后将造成性能下降。 
MATLAB - 利用非线性模型预测控制(Nonlinear MPC)来控制四旋翼飞行器 本示例展示了如何利用非线性模型预测控制(MPC)为四旋翼飞行器设计一个跟踪轨迹的控制器。 阅读详情

相关推荐

从梯度泄露到数据复原:DLG与iDLG算法实战解析

本文深入解析了DLG与iDLG算法在梯度泄露与数据复原中的实战应用,揭示了联邦学习中的隐私风险。通过详细代码示例和实验数据,展示了如何从梯度中复原原始训练数据,并探讨了梯度压缩、差分隐私等防御措施。文章特别强调了iDLG算法在标签破解中的高效性,为AI安全领域提供了重要参考。

weixin_30552811的博客 192

JVM系列三:JVM参数设置、分析

    JVM系列三:JVM参数设置、分析   转载自 http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html   不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略, 调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高J...

stephen830 357

关于示波器测485串口波特率的使用方法总结

之前没有用过示波器,更不知道怎么来测试串口的波特率,结果遇到一客户说我们产品的波特率达不到9600,只有9100,为了验证这一说法,我们只能自己测试一下。说明:产品通过485接电脑,用串口调试助手接收都是没有问题的,用客户的设备接收就有问题。 下面说一下示波器测波特率的方法步骤: 显示高低跳变的情况: 1.先把示波器表笔的地线(夹子)夹485B,表笔夹485A。 2.往串口发送数据:如发送

lianxue1986的专栏 3万+

Java虚拟机参数详解

下面的讨论以Windows平台的Sun MicroSystem实现的java5虚拟机为蓝本,其他操作系统或其他公司实现的虚拟机参数会有部分不同,但大部分含义都和Windows上的类似。Java5与以前版本相比,虚拟机参数大部分保持了向前兼容,同时也增加了一些新的参数,本文将对这些参数的作用作详细描述,使虚拟机能更符合运行环境的需要,获得更好的性能和稳定性。 Java在运行已编译完成的类时,是通过...

信心,恒心,野心,爱心兼具者,可谓准成功人士! 572

微信小程序后台定位与实时位置更新的实战指南

本文提供了微信小程序实现后台定位与实时位置更新的完整实战指南。针对小程序退到后台后位置更新中断的痛点,详细解析了基于`startLocationUpdateBackground`API的后台定位解决方案。内容涵盖从隐私协议配置、项目权限声明,到授权、启动、监听、停止的核心代码流程,并分享了真机调试、性能优化及权限引导等关键避坑经验,帮助开发者构建稳定可靠的后台位置服务。

weixin_29008055的博客 468

Dify工作流自动化:如何用Trae AI助手10倍提升你的开发效率(含避坑指南)

本文详细介绍了如何利用Trae AI助手自动化生成Dify工作流,实现开发效率的10倍提升。通过构建DSL示例库、精准需求描述和四步实战法,开发者可将重复的配置工作交给AI,快速生成可运行的工作流,并提供了关键的避坑指南。

weixin_29062865的博客 370

JVM启动参数详解(含调优)

java启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;本文主要描述标准参数部分,剩下的两个部分将会陆续推出;标准参数列表如下:-client。...

a18721415176的博客 3318

C# NX二次开发:两种过滤器设置方案的实战解析与场景适配

本文深入解析C# NX二次开发中的两种过滤器设置方案:AddFilterHandler回调与MaskTriple属性设置。通过实战案例对比其性能差异与适用场景,帮助开发者根据需求选择最优方案,提升NX插件开发效率与交互体验。特别针对BlockStyler集成场景提供专业建议,是NX二次开发者的实用指南。

weixin_33739646的博客 844

java -jar 参数传递

前景: 我看spring boot启动时,当指定某个profile的时候,是直接使用 --spring.profiles.active但是我之前传递参数是使用的是-Dpath=D:\\ 这样写的,所以我就好奇两种传递参数的区别。

sunshinezx8023的博客 3633

YOLO26 标签分配机制:STAL 小目标感知分配策略

YOLO26提出的STAL标签分配策略通过尺度感知机制优化了小目标检测性能。该方法根据目标面积将检测对象分为小、中、大三类,分别采用差异化的分配参数(TopK数量、IoU阈值和中心度权重),特别是对小目标采用更宽松的匹配条件和更高的中心度权重。实验结果表明,STAL策略显著提升了小目标检测精度(AP_small),同时保持了整体检测性能(mAP),为解决目标检测中尺度不平衡问题提供了有效方案。

一键难忘的博客 790

2025年再论 SAP ABAP 系统经典的三层架构的理解

【摘要】本文基于作者19年SAP开发经验,深入解析SAP经典三层架构在S/4HANA时代的演进与实践。数据库层从多数据库支持转向HANA专属,通过SQLScript实现计算下推;应用层以ABAP平台为核心,融合OData和RAP等现代开发范式;表现层从SAP GUI过渡到Fiori Launchpad为主导。文章通过真实案例(如月末关账优化、ATP检查改造)展示三层协作如何提升性能,并探讨了本地/云/混合部署策略。全文贯穿SAP官方技术文档参考,为开发者提供体系化架构认知和实践指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 756

JVM参数中的 -、-X、-XX、-D、-Javaagent:

一.JVM 启动参数规则:-、-X、-XX、-D 参考:https://blog.csdn.net/liujianyangbj/article/details/115215680 通过JVM运行一个java程序的时候,我们通常会用java -jar xxxx.jar 的命令,我们通常都会根据情况配置很多的运行参数。这些参数可以分为四类: 1.以 - 开头的是标准参数,所有JVM都支持,并且向后兼容 -verbose:gc -server 2.以 -X开头的为非标准参数,绝大多数都是控制JVM的参数 -X

lk的博客 2651

【第一章】基于Simulink的控制器开发教程——目录

摘要:本文系统介绍了基于Simulink的控制器开发方法,涵盖PID、状态反馈、模型预测(MPC)、模糊控制、自适应控制等8类主流控制器。针对每种控制器,详细阐述了其基本原理、适用场景,并通过Simulink建模与仿真测试进行实践验证。文章采用"理论+实践"的结构,从算法设计到硬件实现全流程展开,为汽车、航空航天、工业控制等领域的控制器开发提供完整解决方案,最后通过应用对比与学习总结帮助读者掌握不同控制器的核心特性和应用场景。(149字)

熟悉MATLAB/fpga/RK3588/LABVIEW/protus/单片机/dsp/Multisim 389

java学习之命令行参数

命令行参数1. 命令行参数1.1. 在Eclipse中向main函数传递命令行参数1.1.1. 直接设置命令行参数1.1.2. 在程序中调用main方法,传入命令行参数1.2. 在dos窗口运行java程序时传入命令行参数 1. 命令行参数 刚学习java时,我们都会接触到下面这个简单的程序,我们可以main函数中定义了一个字符串数组参数,这就称为命令行参数,但是我们运行程序时从来没有给这两个参...

学习汪_阿伟的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java中的命令行参数_Java中的命令行参数

java中的命令行参数Command-line arguments in Java are used to pass arguments to the main program. If you look at the Java main method syntax, it accepts String array as an argument. Java中的命令行参数用于将参数传递给主程序。 如果...

从零开始的教程世界 3960

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java 命令参数详解

java命令用于启动 java 应用:它首先会启动 java 运行时环境(JRE),然后加载指定的类,调用类的main()方法。main()方法必须定义为public和static的,并且不返回任何值,参数是 String 类型的数组,该方法的形式如下:public static void main(String[] args) 在通过java命令启动应用时,有一系列的可选参数,使用时需根据应用场景选择合适的参数。本文内容主要来自于 Mac OS 下java命令的 man page...

赶路人儿 4780

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java/springboot中的各种命令参数

java中有很多命令参数,这些命令参数有些是控制jvm行为的,有的则是供应用程序使用。我所了解的参数主要有三种,现在说一说这三种类型的参数。(1)命令行参数。命令行参数就是类似与c语言的命令行参数,这些参数会传给main函数,也就是java中 public static void main(String[] args) 的那个String数组。但是需要注意的是,c。

【欢迎关注公众号:冬瓜白】 3050

Java 命令参数

Java 命令参数 1、前言 之前使用 javap 反编译字节码文件,发现 javap -v 和 javap -c 命令都能实现诶,于是就想查查这两个参数有啥区别~ 2、javap 命令参数 在小黑窗中输入 javap -help 命令,查看 javap 命令相关的帮助 PS:其他 java 命令,比如 java、javac、jps 等等 java 专属命令都可以使用 -help 参数查看帮助信息 C:\Users\Heygo>java -help 用法: java [-options] class

Oneby的博客 382

Java命令行参数

本文我们介绍一个命令行工具,Apache Commons CLI。在我们执行java的jar包时,常用的命令是我们还可以在执行该命令时添加执行参数,不管是在dos还是Linux上执行该命令,抑或是在IDE工具中配置,都是一样的。Java的命令行参数有很多,本文不做介绍,感兴趣的小伙伴可以自行百度:Java命令行参数。

帝上无天的博客 2041

Java 命令行参数[猿教程]

从命令行中使用参数运行应用程序是很常见的。特别是在服务器端。通常情况下,我们不希望应用程序在每次运行时都做同样的事情:我们希望以某种方式配置其行为。在这个简短的教程中,我们将探讨如何在Java中处理命令行参数。...

hj_5346的专栏 5329

java 接收命令行参数_java中的命令行参数_Java中的命令行参数

java中的命令行参数Command-line arguments in Java are used to pass arguments to the main program. If you look at the Java main method syntax, it accepts String array as an argument.Java中的命令行参数用于将参数传递给主程序。 如果您...

weixin_28678151的博客 1640

java中的各种命令参数

java中有很多命令参数,这些命令参数有些是控制jvm行为的,有的则是供应用程序使用。我所了解的参数主要有三种,现在说一说这三种类型的参数。 (1)命令行参数。 命令行参数就是类似与c语言的命令行参数,这些参数会传给main函数,也就是java中public static void main(String[] args)的那个String数组。但是需要注意的是,c 语言的mai...

a55684471的博客 221

Java程序命令行参数总结

前言: 在命令行中输入可以输入各类参数,本文将针对这些参数做一个小结。 基于命令行输入参数 测试程序如下: import java.util.Arrays; public class Main { public static void main(String[] args) { System.out.println("System Property, abc:" + System.get...

木小鱼的笔记 3590

java 调试命令行参数_Java 命令行参数汇总

最近调试一些关于Java内存的东西,把之前一直没能整理,只是大概有个概念的东西翻出来了一下。Java的命令行参数,在此前做web开发的时候,不是很常用到,如果完全没有用到过也能理解,毕竟没搞炸过,没gc过,jvm(sun jdk)的一些默认参数已经足够,web的东西只要环境相差不是太厉害,都没必要用到远程调试。做过Java命令行工具开发的可能会使用一些,例如java -cp example.jar...

weixin_42524762的博客 688

java如何使用命令行_如何在Java中使用命令行参数

命令行参数可以是为应用程序指定配置属性的一种方式,Java也不例外。您可以从终端窗口运行Java应用程序,而不是单击操作系统中的应用程序图标 。除了应用程序名称之外,还可以跟随许多参数,然后将这些参数传递给应用程序的起始点(即,在Java的情况下为main方法)。例如,NetBeans具有许多启动参数,当从终端窗口运行时,可以将这些参数传递给应用程序(例如,-jdkhome 指定要使用的JDK的...

weixin_32806343的博客 1189

Java初学之命令行参数

在做题的时候遇到了下面一道题: class C { public static void main(String[] args) { for(int i = 1; i System.out.print(args[i]); } } } 在命令行中执行 :java C D E F 则输输出为  (A)CDEF    (B)DEF    (C)EF    (D)F 

sum_TW的博客 1万+
上一篇: JUnit入门
下一篇: Java打印
baileyfu
博客等级 码龄21年 9粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值