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) 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 ,

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 
    -Xincgc     enable incremental garbage collection 
    -Xloggc:    log GC status to a file with time stamps 
    -Xbatch     disable background compilation 
    -Xms        set initial Java heap size 
    -Xmx        set maximum Java heap size 
    -Xss        set java thread stack size 
    -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.

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、-Xfuture         enable strictest checks, anticipating future default 
执行严格的代码检查,预测可能出现的情况 
14、-Xrs             reduce 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    向每个子进程传递参数(激活组)

转载于:https://www.cnblogs.com/diyunpeng/archive/2010/10/25/1860291.html

Java参数详解(转载)相关推荐

  1. Linux curl命令参数详解--转载

    linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态. 一.Linux ...

  2. Linux 之 编译器 gcc/g++参数详解

    2016年12月9日16:48:53 ----------------------------- 内容目录: [介绍]  gcc and g++分别是gnu的c & c++编译器 gcc/g+ ...

  3. Java虚拟机详解(五)------JVM参数(持续更新)

    JVM参数有很多,其实我们直接使用默认的JVM参数,不去修改都可以满足大多数情况.但是如果你想在有限的硬件资源下,部署的系统达到最大的运行效率,那么进行相关的JVM参数设置是必不可少的.下面我们就来对 ...

  4. Java Spring Data Redis实战与配置参数详解 application.properties...

    Redis作为开源分布式高并发缓存,使用范围非常广泛,主流互联网公司几乎都在使用. Java Spring Boot 2.0实战开发Redis缓存可以参考下面的步骤,Redis安装可以直接使用Linu ...

  5. java spring启动和终止_springBoot jar启动以停止脚本参数详解

    一.启动脚本 Springboot 项目打成jar包后,在Linux环境上一般有如下几种启动方式: 1. "java -jar XXX.jar " 命令结尾没有 "&am ...

  6. java调用js匿名函数参数,js匿名函数作为函数参数详解

    由衷的感叹,js真是烦. 学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长. 继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的 ...

  7. java ext.dirs_关于-Djava.ext.dirs使用及JAVA 命令参数详解System.setProperty

    大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢? -classpath,命令格式:# java -classpath , ...

  8. mencoder和ffmpeg参数详解 (Java处理视频)

    本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视 ...

  9. Java Spring Data Redis实战与配置参数详解 application.properties

    Redis作为开源分布式高并发缓存,使用范围非常广泛,主流互联网公司几乎都在使用. Java Spring Boot 2.0实战开发Redis缓存可以参考下面的步骤,Redis安装可以直接使用Linu ...

最新文章

  1. Leet Code OJ 104. Maximum Depth of Binary Tree [Difficulty: Easy]
  2. TensorFlow VGG16
  3. 零基础学习前端:学习路线、学习计划、实战项目和面试题简历分享。
  4. 7805输入电流有要求吗_防雷!防护电路在PCB走线方面的要求(某500强企业内部资料~)...
  5. kaggle实战_4解决高维数据分类/回归问题--房价预测
  6. matlab怎么复制相同的列,怎样将数组中某一列数据相同的行提取出来?
  7. LINUX下解决netstat查看TIME_WAIT状态过多问题
  8. java如何代码找错误_java代码查错11道题
  9. MTA18ASF2G72PDZ-2G6D1内存条MTA18ASF2G72PDZ-2G6E1
  10. ssm毕设项目自来水收费管理系统7yd5p(java+VUE+Mybatis+Maven+Mysql+sprnig)
  11. vue axios封装及使用
  12. 这是一个价值一个亿的项目思维导图
  13. 【转载】学习可能用到的英语单词
  14. 电销机器人百度百科_晓芯智能电话机器人百度百科
  15. 放慢你的额脚步_放慢脚步使我成为更好的领导者
  16. 亚马逊热销爆款产品货源有哪些?亚马逊无货源怎么做?
  17. 折腾黑群晖之域名直接访问群晖
  18. 白醋泡大蒜,治疗灰指甲。以下为详细操作,供需要的人参考
  19. 编程题:网上题库网站
  20. 华为胖瘦AP切换方法

热门文章

  1. 1个字,绝! -- CNN中十大令人拍案叫绝的操作
  2. linux不能ping通域名能ping通ip
  3. java 线程状态 jstack_jstack查看jvm线程状态
  4. 【译】Pure Proof-of-Stake Blockchains: Secure Blockchain Decentralization via Committees
  5. Part 1 — Introduction to Smart (legal?) Contracts
  6. Android 插件化原理解析——Hook机制之AMSPMS
  7. 关于android设备管理器的一些分析
  8. 使用snmp4j实现Snmp功能(二)
  9. r perl python电脑要求_Shell Perl Python 介绍
  10. v4l2 框架下如何设置分辨率_如何在端外投放的场景下实现前端实时CEP框架?