Java虚拟机JVM参数配置说明.docx

上传人:b****5 文档编号:6791746 上传时间:2023-01-10 格式:DOCX 页数:27 大小:29.90KB
下载 相关 举报
Java虚拟机JVM参数配置说明.docx_第1页
第1页 / 共27页
Java虚拟机JVM参数配置说明.docx_第2页
第2页 / 共27页
Java虚拟机JVM参数配置说明.docx_第3页
第3页 / 共27页
Java虚拟机JVM参数配置说明.docx_第4页
第4页 / 共27页
Java虚拟机JVM参数配置说明.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Java虚拟机JVM参数配置说明.docx

《Java虚拟机JVM参数配置说明.docx》由会员分享,可在线阅读,更多相关《Java虚拟机JVM参数配置说明.docx(27页珍藏版)》请在冰豆网上搜索。

Java虚拟机JVM参数配置说明.docx

Java虚拟机JVM参数配置说明

Java虚拟机(JVM)参数配置说明

Java虚拟机(JVM)参数配置说明

 

在Java、J2EE大型应用中,JVM非标准参数的配置直接关系到整个系统的性能。

JVM非标准参数指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。

但是在生产环境中,为了提高性能,往往需要调整这些参数,以求系统达到最佳新能。

另外这些参数的配置也是影响系统稳定性的一个重要因素,相信大多数Java开发人员都见过“OutOfMemory”类型的错误。

呵呵,这其中很可能就是JVM参数配置不当或者就没有配置没意识到配置引起的。

 

为了说明这些参数,还需要说说JDK中的命令行工具一些知识做铺垫。

 

首先看如何获取这些命令配置信息说明:

假设你是windows平台,你安装了J2SDK,那么现在你从cmd控制台窗口进入J2SDK安装目录下的bin目录,然后运行java命令,出现如下结果,这些就是包括java.exe工具的和JVM的所有命令都在里面。

 

-----------------------------------------------------------------------

D:

\j2sdk15\bin>java

Usage:

java[-options]class[args...]

          (toexecuteaclass)

  or java[-options]-jarjarfile[args...]

          (toexecuteajarfile)

 

whereoptionsinclude:

   -client      toselectthe"client"VM

   -server      toselectthe"server"VM

   -hotspot     isasynonymforthe"client"VM [deprecated]

                 ThedefaultVMisclient.

 

   -cp

   -classpath

                 A;separatedlistofdirectories,JARarchives,

                 andZIParchivestosearchforclassfiles.

   -D=

                 setasystemproperty

   -verbose[:

class|gc|jni]

                 enableverboseoutput

   -version     printproductversionandexit

   -version:

                 requirethespecifiedversiontorun

   -showversion printproductversionandcontinue

   -jre-restrict-search|-jre-no-restrict-search

                 include/excludeuserprivateJREsintheversionsearch

   -?

-help     printthishelpmessage

   -X           printhelponnon-standardoptions

   -ea[:

...|:

]

   -enableassertions[:

...|:

]

                 enableassertions

   -da[:

...|:

]

   -disableassertions[:

...|:

]

                 disableassertions

   -esa|-enablesystemassertions

                 enablesystemassertions

   -dsa|-disablesystemassertions

                 disablesystemassertions

   -agentlib:

[=]

                 loadnativeagentlibrary,e.g.-agentlib:

hprof

                   seealso,-agentlib:

jdwp=helpand-agentlib:

hprof=help

   -agentpath:

[=]

                 loadnativeagentlibrarybyfullpathname

   -javaagent:

[=]

                 loadJavaprogramminglanguageagent,seejava.lang.instrument

-----------------------------------------------------------------------

在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。

 

其次,用java-X命令查看JVM的配置说明:

运行后如下结果,这些就是配置JVM参数的秘密武器,这些信息都是英文的,为了方便阅读,我根据自己的理解翻译成中文了(不准确的地方还请各位博友斧正)

-----------------------------------------------------------------------

D:

\j2sdk15\bin>java-X

   -Xmixed          mixedmodeexecution(default)

   -Xint            interpretedmodeexecutiononly

   -Xbootclasspath:

                     setsearchpathforbootstrapclassesandresources

   -Xbootclasspath/a:

                     appendtoendofbootstrapclasspath

   -Xbootclasspath/p:

                     prependinfrontofbootstrapclasspath

   -Xnoclassgc      disableclassgarbagecollection

   -Xincgc          enableincrementalgarbagecollection

   -Xloggc:

   logGCstatustoafilewithtimestamps

   -Xbatch          disablebackgroundcompilation

   -Xms       setinitialJavaheapsize

   -Xmx       setmaximumJavaheapsize

   -Xss       setjavathreadstacksize

   -Xprof           outputcpuprofilingdata

   -Xfuture         enablestrictestchecks,anticipatingfuturedefault

   -Xrs             reduceuseofOSsignalsbyJava/VM(seedocumentation)

   -Xcheck:

jni      performadditionalchecksforJNIfunctions

   -Xshare:

off      donotattempttousesharedclassdata

   -Xshare:

auto     usesharedclassdataifpossible(default)

   -Xshare:

on       requireusingsharedclassdata,otherwisefail.

 

The-Xoptionsarenon-standardandsubjecttochangewithoutnotice.

-----------------------------------------------------------------------

 

JVM配置参数中文说明:

-----------------------------------------------------------------------

1、-Xmixed          mixedmodeexecution(default)

 混合模式执行

 

2、-Xint            interpretedmodeexecutiononly

 解释模式执行

 

3、-Xbootclasspath:

     setsearchpathforbootstrapclassesandresources

 设置zip/jar资源或者类(.class文件)存放目录路径

 

3、-Xbootclasspath/a:

     appendtoendofbootstrapclasspath

 追加zip/jar资源或者类(.class文件)存放目录路径

 

4、-Xbootclasspath/p:

     prependinfrontofbootstrapclasspath

 预先加载zip/jar资源或者类(.class文件)存放目录路径

 

5、-Xnoclassgc      disableclassgarbagecollection

 关闭类垃圾回收功能

 

6、-Xincgc          enableincrementalgarbagecollection

 开启类的垃圾回收功能

 

7、-Xloggc:

   logGCstatustoafilewithtimestamps

 记录垃圾回日志到一个文件。

 

8、-Xbatch          disablebackgroundcompilation

 关闭后台编译

 

9、-Xms       setinitialJavaheapsize

 设置JVM初始化堆内存大小

 

10、-Xmx       setmaximumJavaheapsize

 设置JVM最大的堆内存大小

 

11、-Xss       setjavathreadstacksize

 设置JVM栈内存大小

 

12、-Xprof           outputcpuprofilingdata

 输入CPU概要表数据

 

13、-Xfuture         enablestrictestchecks,anticipatingfuturedefault

 执行严格的代码检查,预测可能出现的情况

 

14、-Xrs             reduceuseofOSsignalsbyJava/VM(seedocumentation)

 通过JVM还原操作系统信号

 

15、-Xcheck:

jni      performadditionalchecksforJNIfunctions

 对JNI函数执行检查

 

16、-Xshare:

off      donotattempttousesharedclassdata

 尽可能不去使用共享类的数据

 

17、-Xshare:

auto     usesharedclassdataifpossible(default)

 尽可能的使用共享类的数据

 

18、-Xshare:

on      requireusingsharedclassdata,otherwisefail.

 尽可能的使用共享类的数据,否则运行失败

 

The-Xoptionsarenon-standardandsubjecttochangewithoutnotice.

-----------------------------------------------------------------------

 

怎么用这这些参数呢?

其实所有的命令行都是这么一用,下面我就给出一个最简单的HelloWorl的例子来演示这个参数的用法,非常的简单。

 

HelloWorld.java

-----------------------------------------------

publicclass HelloWorld

{

 publicstaticvoidmain(String[]args)

 {

  System.out.println("HelloWorld!

");

 }

}

 

编译并运行:

D:

\j2sdk15\bin>javacHelloWorld.java

 

D:

\j2sdk15\bin>java-Xms256M-Xmx512MHelloWorld

HelloWorld!

 

呵呵,这下满足了吧!

 

实践:

在大型系统或者应用中配置JVM参数

比如你配置IDE工具的参数,常见的有IDEA、Eclipse,这个是在一个配置文件中指定即可。

如果你要在J2EE环境中配置这些参数,那么你需要在J2EE应用服务器或者Servlet容器相关启动参数设置处指定,其启动文件中来配置,Tomcat是在catalina.bat中配置,weblogic和websphere是在其他地方,具体我就说了,相信玩过的这些大型服务器的人都知道,没玩过的看看这篇文章,玩玩就知道了,呵呵。

 

另外常常有人问到jdk的一些相关命令用法,其实,当你看到这里的时候,你应该知道如何获取这些命令的用法了。

如果你还不会,那么,建议你去学学DOS,我是没辙了。

如果你会这些,还是没有看明白,那么你赶紧学学英语吧,这样你就能看懂了。

 

另外:

我在最后给出常用的几个Java命令行说明,以供参考:

 

(1)、javac

用法:

javac<选项><源文件>

其中,可能的选项包括:

 -g                        生成所有调试信息

 -g:

none                   不生成任何调试信息

 -g:

{lines,vars,source}    只生成某些调试信息

 -nowarn                   不生成任何警告

 -verbose                  输出有关编译器正在执行的操作的消息

 -deprecation              输出使用已过时的API的源位置

 -classpath<路径>           指定查找用户类文件的位置

 -cp<路径>                  指定查找用户类文件的位置

 -sourcepath<路径>          指定查找输入源文件的位置

 -bootclasspath<路径>       覆盖引导类文件的位置

 -extdirs<目录>             覆盖安装的扩展目录的位置

 -endorseddirs<目录>        覆盖签名的标准路径的位置

 -d<目录>                   指定存放生成的类文件的位置

 -encoding<编码>            指定源文件使用的字符编码

 -source<版本>              提供与指定版本的源兼容性

 -target<版本>              生成特定VM版本的类文件

 -version                  版本信息

 -help                     输出标准选项的提要

 -X                        输出非标准选项的提要

 -J<标志>                    直接将<标志>传递给运行时系统

 

(2)、jar

用法:

jar{ctxu}[vfm0Mi][jar-文件][manifest-文件][-C目录]文件名...

选项:

   -c 创建新的存档

   -t 列出存档内容的列表

   -x 展开存档中的命名的(或所有的〕文件

   -u 更新已存在的存档

   -v 生成详细输出到标准输出上

   -f 指定存档文件名

   -m 包含来自标明文件的标明信息

   -0 只存储方式;未用ZIP压缩格式

   -M 不产生所有项的清单(manifest〕文件

   -i 为指定的jar文件产生索引信息

   -C 改变到指定的目录,并且包含下列文件:

如果一个文件名是一个目录,它将被递归处理。

清单(manifest〕文件名和存档文件名都需要被指定,按'm'和'f'标志指定的相同顺序。

 

示例1:

将两个class文件存档到一个名为'classes.jar'的存档文件中:

      jarcvfclasses.jarFoo.classBar.class

示例2:

用一个存在的清单(manifest)文件'mymanifest'将foo/目录下的所有

          文件存档到一个名为'classes.jar'的存档文件中:

      jarcvfmclasses.jarmymanifest-Cfoo/.

 

(3)、javadoc

javadoc:

错误-未指定软件包或类。

用法:

javadoc[选项][软件包名称][源文件][@file]

-overview<文件>         读取HTML文件的概述文档

-public                  仅显示公共类和成员

-protected               显示受保护/公共类和成员(默认)

-package                 显示软件包/受保护/公共类和成员

-private                 显示所有类和成员

-help                    显示命令行选项并退出

-doclet<类>             通过替代doclet生成输出

-docletpath<路径>       指定查找doclet类文件的位置

-sourcepath<路径列表>   指定查找源文件的位置

-classpath<路径列表>    指定查找用户类文件的位置

-exclude<软件包列表>    指定要排除的软件包的列表

-subpackages<子软件包列表>指定要递归装入的子软件包

-breakiterator           使用BreakIterator计算第1句

-bootclasspath<路径列表>覆盖引导类加载器所装入的

                         类文件的位置

-source<版本>           提供与指定版本的源兼容性

-extdirs<目录列表>      覆盖安装的扩展目录的位置

-verbose                 输出有关Javadoc正在执行的操作的消息

-locale<名称>           要使用的语言环境,例如en_US或en_US_WIN

-encoding<名称>         源文件编码名称

-quiet                   不显示状态消息

-J<标志>                 直接将<标志>传递给运行时系统

 

通过标准doclet提供:

-d<目录>                        输出文件的目标目录

-use                             创建类和软件包用法页面

-version                         包含@version段

-author                          包含@author段

-docfilessubdirs                 递归复制文档文件子目录

-splitindex                      将索引分为每个字母对应一个文件

-windowtitle<文本>              文档的浏览器窗口标题

-doctitle  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1