java命令详解
- 格式:doc
- 大小:33.50 KB
- 文档页数:2
Java命令参数说明Java命令参数说明大全为了提高性能,往往需要调整java命令参数,以求系统达到最佳新能。
另外这些参数的配置也是影响系统稳定性的一个重要因素,相信大多数Java开发人员都见过“OutOfMemory”类型的错误。
这其中很可能就是JVM参数配置不当或者就没有配置没意识到配置引起的。
那么java命令参数要怎么设置呢?下面跟yjbys店铺一起来看看吧!Java 在运行已编译完成的类时,是通过 java 虚拟机来装载和执行的,java 虚拟机通过操作系统命令 JAVA_HOME\bin\java –option 来启动,-option 为虚拟机参数,JAVA_HOME 为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解。
一、查看参数列表:虚拟机参数分为基本和扩展两类,在命令行中输入JAVA_HOME\bin\java 就可得到基本参数列表,在命令行输入JAVA_HOME\bin\java –X 就可得到扩展参数列表。
二、基本参数说明:-----------------------------------------------------------------------D:\j2sdk15\bin>javaUsage: java [-options] class [args...](to execute a class)or java [-options] -jar jarfile [args...](to execute a jar file)where options include:-client to select the "client" VM-server to select the "server" VM-hotspot is a synonym for the "client" VM [deprecated]The default VM is client.-cp-classpathA ; separated list of directories, JAR archives,and ZIP archives to search for class files.-D=set a system property-verbose[:class|gc|jni]enable verbose output-version print product version and exit-version:require the specified version to run-showversion print product version and continue-jre-restrict-search | -jre-no-restrict-searchinclude/exclude user private JREs in the version search -? -help print this help message-X print help on non-standard options-ea[:...|:]-enableassertions[:...|:]enable assertions-da[:...|:]-disableassertions[:...|:]disable assertions-esa | -enablesystemassertionsenable system assertions-dsa | -disablesystemassertionsdisable system assertions-agentlib:[=]load native agent library , e.g. -agentlib:hprofsee also, -agentlib:jdwp=help and -agentlib:hprof=help -agentpath:[=]load native agent library by full pathname-javaagent:[=]load Java programming language agent, see ng.instrument-----------------------------------------------------------------------1. -client,-server这两个参数用于设置虚拟机使用何种运行模式,client 模式启动比较快,但运行时性能和内存管理效率不如 server 模式,通常用于客户端应用程序。
javap的各种命令用法-回复Javap是Java Development Kit(JDK)中的一个命令行工具,用于反编译Java字节码文件。
它可以用来查看和分析字节码文件的内容,帮助程序员理解源代码的内部结构和执行逻辑。
本文将一步一步介绍javap 的各种命令用法,帮助读者更好地了解和使用这个强大的工具。
一、安装和配置Javap首先,我们需要安装Java Development Kit(JDK)并将其配置到系统的环境变量中。
确保JDK的版本符合你的需求,并能够在命令行中使用javac和java命令。
接下来,我们就可以开始使用javap了。
二、基本命令用法1. 命令格式javap命令的基本格式如下:javap [options] [classes]2. 帮助命令如果你对javap的命令选项不熟悉,可以使用以下命令获取帮助信息:javap -help3. 查看类结构如果你想查看一个类的结构,可以使用以下命令格式:javap -c [fully-qualified-class-name]其中,-c选项用于显示字节码指令的编译版本。
4. 查看常量池常量池是一个存储Java字节码中常量的table,包括类和接口的全限定名、字段和方法的名称和描述符、字面量、符号引用等信息。
你可以使用以下命令来查看一个类的常量池:javap -verbose [fully-qualified-class-name]该命令会输出常量池的详细信息,包括常量池中的项数量、类型、内容等。
5. 查看方法签名要查看一个类的方法签名,可以使用以下命令:javap -s [fully-qualified-class-name]该命令会显示每个方法的签名,包括参数类型、返回类型、异常类型等。
6. 查看字段信息要查看一个类的字段信息,可以使用以下命令:javap -verbose -private [fully-qualified-class-name]该命令会显示每个字段的修饰符、名称、类型等信息。
linux java -jar命令常用参数
在Linux中,使用java -jar命令可以运行Java JAR文件。
以下是常用的参数和选项:
1、-jar: 指定要运行JAR文件。
2、-classpath: 指定类路径,用于查找类文件和其他资源文件。
可以使用冒号(:)分隔多个路径。
3、-cp: 指定类路径,与-classpath参数类似。
4、-mainclass: 指定主类,即包含main方法的类。
可以在JAR文件中指定主类,或者使用此参数显式指定。
5、-Dproperty=value: 指定系统属性,可以在代码中使用System.getProperty()方法获取该属性的值。
6、-verbose: 显示详细的输出信息,包括类加载器、内存使用情况等。
7、-Xmx<size>: 设置Java堆的最大大小,其中<size>可以是256m、512m、1g等。
8、-Xms<size>: 设置Java堆的初始大小,其中<size>可以是256m、512m、1g等。
9、-XX:+HeapDumpOnOutOfMemoryError: 在发生内存溢出错误时生成堆转储文件。
10、-XX:+PrintGCDetails: 显示详细的垃圾回收日志信息。
11、-XX:+PrintGC: 显示垃圾回收的摘要信息。
12、-XX:+PrintClassHistogram: 显示类加载器的统计信息。
这些参数可以根据实际情况进行组合和调整,以满足特定的需求。
java -cp 命令用法
java -cp 命令是Java程序中使用的一种有用的工具,它可以让程序员更轻松地管理和加载多个类。
它是一种Java虚拟机指令,它可以帮助程序调用并使用特定的类和类库。
java -cp 命令的基本语法是:java -cp <classpath>
<mainclass> [options]。
其中,<classpath>参数是类和类库的路径,<mainclass>参数是Java应用程序的启动类,[options]参数是可选的,用于指定虚拟机的额外参数。
java -cp 命令的主要用途是加载和使用类和类库,它能够帮助程序调用特定的类并使用它们的功能。
另外,它还可以用于指定类的搜索路径,以便能够在不同的位置加载和使用类。
使用java -cp 命令时需要注意的是,<classpath>参数可以是文件夹、JAR文件或者ZIP文件,它们都可以用于指定类的搜索路径。
另外,如果不想使用默认的类路径,也可以使用“-cp”参数来指定自定义的路径。
总而言之,java -cp 命令是Java程序中使用的一种有用工具,可以帮助程序调用特定的类和类库,并指定搜索路径。
它的使用可以帮助程序员更轻松地管理和加载多个类,从而提高程序的性能和效率。
java命令⾏介绍1.总述java命令⽤来启动⼀个java应⽤。
有以下两种⽤法:java [options] mainClass [args...]java [options] -jar jarfile [args...]第⼀种从指定的java类开始启动,第⼆种从可运⾏的jar开始启动。
java应⽤启动的过程有三个步骤,⾸先启动java运⾏时环境JRE,然后加载所需的类,最后调⽤类的main⽅法。
命令⾏的各部分含义如下:options 由空格分隔的命令⾏选项,下⼀节详细说明mainClass 待启动类包含包路径的类全名,其中需要有main()⽅法jarfile 待启动的jar包的路径名称args 传给启动类的main()⽅法的参数,⽤空格分开2.命令⾏选项java的命令⾏选项分为三类:1.标准选项。
jvm必须实现的选项,实现通⽤的功能,如检查运⾏环境,检查JRE的版本,设置类路径等。
2.扩展选项。
HotSpot虚拟机实现常⽤功能的选项,其他jvm不⼀定实现。
此类选项前缀为:-x3,⾼级选项。
⾼级选项是开发者选项,不保证在所有的jvm上实现,并可能会改变。
⾼级选项也可以分为如下四种类型:1) ⾼级运⾏时选项:控制jvm运⾏时的⾏为2) ⾼级维护性选项:⽀持收集系统信息和调试3) ⾼级GC选项:控制jvm的垃圾收集⾏为4) ⾼级JIT选项:控制jvm的及时编译⾏为3.标准选项-version 打印版本信息然后退出,经常使⽤该参数来打印java的版本或者验证java是否可⽤。
-Dproperty=value 设置系统属性的值。
其中属性名不能含哟空⽩字符,属性值如果含有空⽩字符,需要⽤引号括起来。
如下:-Dhello="hello world"该值可以在java程序中⽤如下代码获取:System.getProperty("hello")-server -client 指定jvm的模式,client模式⽤于桌⾯应⽤,server模式⽤于服务端应⽤。
java命令--jmap命令使⽤jdk安装后会⾃带⼀些⼩⼯具,jmap命令(Java Memory Map)是其中之⼀。
主要⽤于打印指定Java进程(或核⼼⽂件、远程调试服务器)的共享对象内存映射或堆内存细节。
jmap命令可以获得运⾏中的jvm的堆的快照,从⽽可以离线分析堆,以检查内存泄漏,检查⼀些严重影响性能的⼤对象的创建,检查系统中什么对象最多,各种对象所占内存的⼤⼩等等。
可以使⽤jmap⽣成Heap Dump。
java memory = direct memory(直接内存) + jvm memory(MaxPermSize +Xmx)1)直接内存跟堆直接内存则是⼀块由程序本⾝管理的⼀块内存空间,它的效率要⽐标准内存池要⾼,主要⽤于存放⽹络通信时数据缓冲和磁盘数据交换时的数据缓冲。
DirectMemory容量可以通过 -XX:MaxDirectMemorySize指定,如果不指定,则默认为与Java堆的最⼤值(-Xmx指定)⼀样。
但是,在OSX上的最新版本的 JVM,对直接内存的默认⼤⼩进⾏修订,改为“在不指定直接内存⼤⼩的时默认分配的直接内存⼤⼩为64MB”,可以通过 -XX:MaxMemorySize来显⽰指定直接内存的⼤⼩。
2)堆(Heap)和⾮堆(Non-heap)内存按照官⽅的说法:“Java 虚拟机具有⼀个堆,堆是运⾏时数据区域,所有类实例和数组的内存均从此处分配。
堆是在 Java 虚拟机启动时创建的。
”“在JVM中堆之外的内存称为⾮堆内存(Non-heap memory)”。
可以看出JVM主要管理两种类型的内存:堆和⾮堆。
简单来说堆就是Java代码可及的内存,是留给开发⼈员使⽤的;⾮堆就是JVM留给⾃⼰⽤的,所以⽅法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运⾏时常数池、字段和⽅法数据)以及⽅法和构造⽅法的代码都在⾮堆内存中。
3)栈与堆栈解决程序的运⾏问题,即程序如何执⾏,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放、放在哪⼉。
这一篇主要介绍与java相关标签的使用终于始重头戏了,Java部分们的重也中用处最多的部分。
1. <javac>编译java源文件成class文件。
<javac srcdir="${src}" destdir="${dest}" encoding="utf-8"bootclasspathref="project.classpath" includejavaruntime="true" includeantruntime="false" optimize="true" source="1.6" target="1.6"/>(1). srcdir:java源文件的文件夹,也可以在内部嵌套<src>标签(2). destdir:用于存放编译后class文件的文件夹,默认当前文件夹。
(3). includes:必须包括的文件模式的列表,以逗号或空格分隔。
如果忽略,将包括所有文件。
(4). includesfile:指定一个包含很多include的文件,同样可以用通配符来指定。
(5). excludes:必须排除的文件模式的列表,以逗号或空格分隔。
如果忽略,将不排除任何文件。
(6). excludesfile:指定一个包含很多exclude的文件,同样可以用通配符来指定。
(7). classpath: 编译所使用的classpath(8). sourcepath: 指定源资源文件夹。
默认指向srcdir(9). bootclasspath: 启动时设置classpath(10). classpathref:引用其他classpath(11). sourcepathref:引用其他源文件目录(12). bootclasspathref:启动时引用其他classpath设置(13). extdirs:扩展文件的路径。
java命令--jps命令转⾃:jps位于jdk的bin⽬录下,其作⽤是显⽰当前系统的java进程情况,及其id号。
jps相当于Solaris进程⼯具ps。
不象”pgrep java”或”ps -ef grep java”,jps并不使⽤应⽤程序名来查找JVM实例。
因此,它查找所有的Java应⽤程序,包括即使没有使⽤java执⾏体的那种(例如,定制的启动器)。
另外,jps仅查找当前⽤户的Java进程,⽽不是当前系统中的所有进程。
位置我们知道,很多Java命令都在jdk的JAVA_HOME/bin/⽬录下⾯,jps也不例外,他就在bin⽬录下,所以,他是java⾃带的⼀个命令。
功能jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的⼀个显⽰当前所有java进程pid的命令,简单实⽤,⾮常适合在linux/unix平台上简单察看当前java进程的⼀些简单情况。
原理jdk中的jps命令可以显⽰当前运⾏的java进程以及相关参数,它的实现机制如下:java程序在启动以后,会在java.io.tmpdir指定的⽬录下,就是临时⽂件夹⾥,⽣成⼀个类似于hsperfdata_User的⽂件夹,这个⽂件夹⾥(在Linux中为/tmp/hsperfdata_{userName}/),有⼏个⽂件,名字就是java进程的pid,因此列出当前运⾏的java进程,只是把这个⽬录⾥的⽂件名列⼀下⽽已。
⾄于系统的参数什么,就可以解析这⼏个⽂件获得。
hollis@hos:/tmp/hsperfdata_hollis$ pwd/tmp/hsperfdata_hollishollis@hos:/tmp/hsperfdata_hollis$ lltotal 48drwxr-xr-x 2 hollis hollis 4096 4⽉1610:54 ./drwxrwxrwt 7 root root 12288 4⽉1610:56 ../-rw------- 1 hollis hollis 32768 4⽉1610:572679hollis@hos:/tmp/hsperfdata_hollis$上⾯的内容就是我机器中/tmp/hsperfdata_hollis⽬录下的内容,其中2679就是我机器上当前运⾏中的java的进程的pid,我们执⾏jps验证⼀下:hollis@hos:/tmp/hsperfdata_hollis$ jps2679 uncher_1.3.0.v20130327-1440.jar4445 Jps执⾏了jps命令之后,我们发现有两个java进程,⼀个是pid为2679的eclipse运⾏的进程,另外⼀个是pid为4445的jps使⽤的进程(他也是java命令,也要开⼀个进程)使⽤想要学习⼀个命令,先来看看帮助,使⽤jps -help查看帮助:hollis@hos:/tmp/hsperfdata_hollis$ jps -helpusage: jps [-help]jps [-q] [-mlvV] [<hostid>]Definitions:<hostid>: <hostname>[:<port>]接下来,为了详细介绍这些参数,我们编写⼏个类,在main⽅法⾥写⼀个while(true)的循环,查看java进程情况。
java命令详解续 2009-07-16 12:21 rmid 功能说明: rmid 启动激活系统守护进程,以便能够在 Java 虚拟机上注册和激活对象。 语法: rmid [-port port] [-log dir] 补充说明: rmid 工具启动激活系统守护进程。必须先启动激活系统守护进程,才能向激活系统注册可被激活的对象或在 Java 虚拟机上激活可被激活的对象。 命令选项 -C 指定一个选项,在创建每个 rmid 的子守护进程(激活组)时,该选项以命令行参数的形式传给该子守护进程。 -log[目录] 指定目录的名称,激活系统守护进程在该目录中写入其数据库及相关信息。缺省状态下,将在执行 rmid 命令的目录中创建一个 log 目录。 -port[端口] 指定 rmid 的注册服务程序所使用的端口。激活系统守护进程将 ActivationSystem 与该注册服务程序中的名称java.rmi.activation.ActivationSystem 捆绑在一起。 -stop 停止 -port 选项所指定端口上的当前 rmid 调用。若未指定端口,则将停止在端口 1098 上运行的 rmid。 ============================= rmiregistry 功能说明: rmiregistry 命令可在当前主机的指定端口上启动远程对象注册服务程序。 语法: rmiregistry [port] 补充说明: rmiregistry 命令在当前主机的指定 port 上创建并启动远程对象注册服务程序。如果省略 port,则注册服务程序将在 1099 端口上启动。rmiregistry 命令不产生任何输出而且一般在后台运行。远程对象注册服务程序是自举命名服务。主机上的 RMI 服务器将利用它将远程对象绑定到名字上。客户机即可查询远程对象并进行远程方法调用。注册服务程序一般用于定位应用程序需调用其方法的第一个远程对象。该对象反过来对各应用程序提供相应的支持,用于查找其它对象。java.rmi.registry.LocateRegistry 类的方法可用于在某台主机或主机和端口上获取注册服务程序操作。java.rmi.Naming 类的基于 URL 的方法将对注册服务程序进行操作,并可用于查询远程对象、将简单(字符串)名称绑定到远程对象、将新名称重新绑定到远程对象(覆盖旧绑定)、取消远程对象的绑定以及列出绑定在注册服务程序上的 URL。 ============================= serialver 功能说明: serialver 命令返回 serialVersionUID。 语法: serialver [ 命令选项 ] 补充说明: serialver 以适于复制到演变类的形式返回一个或多个类的 serialVersionUID。不带参数调用时,它输出用法行。 命令选项 -show 显示一个简单的用户界面。输入完整的类名并按回车键或“显示”按钮可显示 serialVersionUID。 ================================ jarsigner 功能说明: 为 Java 归档 (JAR 文件产生签名,并校验已签名的 JAR 文件的
Java常⽤命令汇总这篇⽂章就主要向⼤家展⽰了Java编程中常⽤的命令,下⾯看下具体内容。
1、javac将⽂件编译成.class⽂件⽤法: javac <options> <source files>其中, 可能的选项包括:-g ⽣成所有调试信息-g:none 不⽣成任何调试信息-g:{lines,vars,source} 只⽣成某些调试信息-nowarn 不⽣成任何警告-verbose 输出有关编译器正在执⾏的操作的消息-deprecation 输出使⽤已过时的 API 的源位置-classpath <路径> 指定查找⽤户类⽂件和注释处理程序的位置-cp <路径> 指定查找⽤户类⽂件和注释处理程序的位置-sourcepath <路径> 指定查找输⼊源⽂件的位置-bootclasspath <路径> 覆盖引导类⽂件的位置-extdirs <⽬录> 覆盖所安装扩展的位置-endorseddirs <⽬录> 覆盖签名的标准路径的位置-proc:{none,only} 控制是否执⾏注释处理和/或编译。
-processor <class1>[,<class2>,<class3>...] 要运⾏的注释处理程序的名称; 绕过默认的搜索进程-processorpath <路径> 指定查找注释处理程序的位置-d <⽬录> 指定放置⽣成的类⽂件的位置-s <⽬录> 指定放置⽣成的源⽂件的位置-implicit:{none,class} 指定是否为隐式引⽤⽂件⽣成类⽂件-encoding <编码> 指定源⽂件使⽤的字符编码-source <发⾏版> 提供与指定发⾏版的源兼容性-target <发⾏版> ⽣成特定 VM 版本的类⽂件-version 版本信息-help 输出标准选项的提要-A关键字[=值] 传递给注释处理程序的选项-X 输出⾮标准选项的提要-J<标记> 直接将 <标记> 传递给运⾏时系统-Werror 出现警告时终⽌编译@<⽂件名> 从⽂件读取选项和⽂件名2、java执⾏ .class⽂件,若类中没有main函数,则不能执⾏。
java命令详解
JDK工具 java命令详解
一、查看用法
C:\>java -help
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
-cp
-classpath
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-version:
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:
-enableassertions[:
enable assertions
-da[:
-disableassertions[:
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:
load native agent library
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:
load native agent library by full pathname
-javaagent:
load Java programming language agent, see java.lang.instrument
这个命令帮助是英文的,不知道JDK咋搞的,也不妨碍使用。
另外,这个命令的非标准选项也是很重要的,常常在JVM优化配置方面很关键,可以参看
本人的JVM参数配置文章。
C:\myproject>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:
set search path for bootstrap classes and resources
-Xbootclasspath/a:
append to end of bootstrap class path
-Xbootclasspath/p:
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:
-Xbatch disable background compilation
-Xms
-Xmx
-Xss
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.