技术员博客      html  css  js  c++  java
  • Java参数详解(转载) 规格严格

    1. Java VM

    运行于linux平台上的JVM会读取/etc/sysconfig/i18n中的参数来决定输出流的编码方式,如果在安装linux系统过程中没有选择中文,JVM就不能数据中文编码的文字。打开/etc/sysconfig/i18n,注意这两行:
    LANGUAGE="en_US.ISO8859" --该行指明了语言的编码方式

    SUPPORTED="en_US.UTF-8:zh_CN.UTF-8:zh_CN.GB2312:zh.: " --该行指明了支持的编码方式

    如果i18n文件是这样的那么JVM会按照其中指明的LANGUAGE参数来决定字符流的编码方式,在这里就会按照ISO8859格式来编码输出,这时如果有中文需要显示就会输出乱码。只需将i18N文件的LANGUAGE参数改为以下的格式即可显示中文

    LANGUAGE=" zh_CN.GB2312"或LANGUAGE=" zh_CN.GBK" --GB2312是GBK的子集

    2. Resource Bundle
    经过以上步骤EOS Server应可以正确显示中文,但EOS调试服务器和EOS

    Mgr Server使用了Resource Bundle文件来显示字符,这时需要指定一个参数让Resource Bundle能够选择正确的编码方式。打开启动EOS Server的脚本文件例如:startWebLogic.sh或startTomcat.sh,在启动的那一行将EOS_I18N2GB参数设置为true
    在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...](to execute a class) orjava [-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 ,

    e.g. -agentlib:hprof 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
    ---------------------------------------------------------------------
    在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。


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

    ---------------------------------------------------------------------
    D:\j2sdk15\bin>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
    -Xincgcenable incremental garbage collection
    -Xloggc: log GC status to a file with time stamps
    -Xbatchdisable background compilation
    -Xms set initial Java heap size
    -Xmx set maximum Java heap size
    -Xss set java thread stack size
    -Xprofoutput cpu profiling data
    -Xfutureenable 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.


    The -X options are non-standard and subject to change without notice.
    ---------------------------------------------------------------------
    JVM
    配置参数中文说明:
    ---------------------------------------------------------------------
    1、
    -Xmixed mixed mode execution (default)
    混合模式执行

    2、
    -Xint interpreted mode execution only
    解释模式执行

    3、
    -Xbootclasspath:
    set search path for bootstrap classes and resources
    设置zip/jar资源或者类(.class文件)存放目录路径

    3、
    -Xbootclasspath/a:
    append to end of bootstrap class path
    追加zip/jar资源或者类(.class文件)存放目录路径

    4、
    -Xbootclasspath/p:
    prepend in front of bootstrap class path
    预先加载zip/jar资源或者类(.class文件)存放目录路径

    5、
    -Xnoclassgc disable class garbage collection
    关闭类垃圾回收功能

    6、
    -Xincgc enable incremental garbage collection
    开启类的垃圾回收功能

    7、
    -Xloggc: log GC status to a file with time stamps
    记录垃圾回日志到一个文件。

    8、
    -Xbatch disable background compilation
    关闭后台编译

    9、
    -Xms set initial Java heap size
    设置JVM初始化堆内存大小

    10、
    -Xmx set maximum Java heap size
    设置JVM最大的堆内存大小

    11、
    -Xss set java thread stack size
    设置JVM栈内存大小

    12、
    -Xprof output cpu profiling data
    输入CPU概要表数据

    13、
    -Xfutureenable strictest checks, anticipating future default
    执行严格的代码检查,预测可能出现的情况

    14、-Xrsreduce use of OS signals by Java/VM (see documentation)通过JVM还原操作系统信号

    15、
    -Xcheck:jni perform additional checks for JNI functions
    对JNI函数执行检查

    16、
    -Xshare:off do not attempt to use shared class data
    尽可能不去使用共享类的数据

    17、
    -Xshare:auto use shared class data if possible (default)
    尽可能的使用共享类的数据

    18、
    -Xshare:on require using shared class data, otherwise fail.
    尽可能的使用共享类的数据,否则运行失败

    The -X options are non-standard and subject to change without notice.
    ---------------------------------------------------------------------
    怎么用这这些参数呢?其实所有的命令行都是这么一用,下面我就给出一个最简单的HelloWorl的例子来演示这个参数的用法,非常的简单。

    HelloWorld.java
    -----------------------------------------------
    public class HelloWorld {
    public static void main(String[] args)
    {
    System.out.println("Hello World!");
    }
    }
    编译并运行:

    D:\j2sdk15\bin>javac HelloWorld.java
    D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
    Hello World!
    呵呵,这下满足了吧!


    实践:在大型系统或者应用中配置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'的存档文件中:

    jar cvf classes.jar Foo.class Bar.class
    示例2:用一个下的所有
    文件存档到一个名为'classes.jar'的存档文件中:

    jar cvfm classes.jar mymanifest -C foo/ .
    (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包含概述页面的标题

    -header包含每个页面的页眉文本

    -footer包含每个页面的页脚文本

    -bottom包含每个页面的底部文本

    -link创建指向位于 的javadoc输出的链接

    -linkoffline利用位于 的软件包列表链接至位于的文档
    -excludedocfilessubdir <名称1>:排除带有给定名称的所有文档文件子目录。

    -group <名称> :..在概述页面中,将指定的软件包分组

    -nocomment抑止描述和标记,只生成声明。

    -nodeprecated不包含@deprecated信息

    -noqualifier <名称1>:<名称2>:...从输出中排除限定符的列表。

    -nosince不包含@since信息

    -notimestamp不包含隐藏时间戳

    -nodeprecatedlist不生成已过时的列表

    -notree不生成类分层结构

    -noindex不生成索引

    -nohelp不生成帮助链接

    -nonavbar不生成导航栏

    -serialwarn生成有关@serial标记的警告

    -tag <名称>:<位置>:<标题>指定单个变量自定义标记

    -taglet要注册的Taglet的全限定名称

    -tagletpath Taglet的路径

    -charset <字符集>用于跨平台查看生成的文档的字符集。

    -helpfile <文件>包含帮助链接所链接到的文件
    -linksource以HTML格式生成源

    -sourcetab <制表符长度>指定源中每个制表符占据的空格数

    -keywords使软件包、类和成员信息附带HTML元标


    -stylesheetfile <路径>用于更改生成文档的样式的文件

    -docencoding <名称>输出编码名称

    (4)、
    rmid
    rmid:非法选项:
    -?
    用法:
    rmid
    其中, 包括
    :
    -port指定供rmid使用的端口

    -log指定rmid将日志写入的目录

    -stop停止当前的rmid调用(对指定端口)

    -C向每个子进程传递参数(激活组)

  • 相关阅读:
    带您了解mysql CONCAT()函数
    thinking point
    hdu_2030_汉字统计_解题报告
    Linux Socket学习(十七)
    聊聊自己用到的开发工具 | Python China 此贴是神贴
    取消选中的区域
    当JS面向对象之后续(JS在设计级联菜单时)
    A year of Qt ecosystem growth with Digia nurturing Qt Commercial
    MFC总结之CListCtrl用法及技巧(二) .
    国际:十个习惯让你精通新的开发技术
  • 原文地址:https://www.cnblogs.com/diyunpeng/p/1860291.html
Copyright © 2011-2022 技术员博客