- 浏览: 165328 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wady:
谢谢,试了好多方法,终于在你这里找到有用的方法了!
ORA-12154: TNS: 无法解析指定的连接标识符 -
iceglove:
谢谢,
ORA-12154: TNS: 无法解析指定的连接标识符 -
sunnylocus:
不错,有空仔细看看
Powerdesigner数据库建模工具教程 -
caizhongda:
不能这么说。。。看你怎么用了,,Heritrix可以选项比较多 ...
Heritrix 爬虫与Nutch 爬虫 -
jasstion:
不错,看来是您实战经验的总结啊o(∩_∩)o...!
国内酒桌上的土规矩
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 向每个子进程传递参数(激活组)
发表评论
-
基于遗传算法的排课系统
2009-03-15 18:24 5198一、介绍 随着近几年各个高校的合并与扩招,我国的综合性大学和各 ... -
垃圾收集器与Java编程
2009-03-12 15:46 963垃圾收集器(Garbage Collector,GC)对Ja ... -
Java 读/写文件文本文件的示例
2008-08-07 19:08 3123Java 读/写文件文本文件的示例 /* * 简单的读/写文本 ... -
利用JAVA技术进行XML编程
2008-08-07 13:14 953在过去几年中,XML 已经成为一种通用的数据格式。这篇经过修订 ... -
java中常用的一些方法
2008-08-07 13:09 1213字符串1、获取字符串的长度 length() 2 、判断字符串 ... -
编写高效的线程安全类
2008-08-06 06:42 884在语言级支持锁定对象和线程间发信使编写线程安全类变得简单。本文 ... -
扫描整个网段的多线程程序
2008-08-06 06:20 1044描500个IP10秒钟左右, 一个IP等待0.3秒说来惭愧, ... -
创建Java中的线程池
2008-08-06 06:16 1085线程是Java的一大特性, ... -
对Swing线程的再思索
2008-08-05 23:59 772不正确的Swing线程是运 ... -
从网页源文件中得到链接
2008-08-05 23:51 893import java.net.*;import java.i ... -
Java核心部分的总结
2008-08-05 23:47 884第一课 1. 有关Apple ... -
Java学习过程中应该理解的一些重点内容
2008-08-05 23:45 936本文介绍Java学习过程中 ... -
课堂笔记学习java
2008-08-05 23:43 928第一节课: 1. java 语言的诞生和特点(一般的教材都 ... -
JDBC基础教程之语句
2008-08-05 23:40 873概述 Statement 对象 ... -
JDBC基础教程之驱动设置
2008-08-05 23:39 9331、概述 DriverManag ... -
搭建Java桌面应用程序原型(一)
2008-08-05 23:32 1560在这篇文章里,我将描述一个Java桌面应用的原型,我把它叫做J ... -
解析Java中的多线程机制
2008-08-05 23:16 1248一、进程与应用 ... -
Java多线程技术中所有方法的详细解析
2008-08-05 23:15 951一、run()和start() 这 ... -
JAVA教程-Java语言基础知识
2008-08-05 23:04 15772.1简单数据类型 2.1 ... -
JAVA学习-Java语言概述
2008-08-05 22:54 9861.1 java语言的发展史 1.1. ...
相关推荐
#### 如何获取JVM参数配置信息 可以通过命令行方式获取JVM的所有参数配置信息。例如,在Windows平台上,通过`cmd`进入`J2SDK`安装目录下的`bin`目录,运行以下命令: ```batch java -X ``` 这会显示包括`java.exe...
本书将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。 本书共11章。第1~~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~~5章介绍了垃圾回收的算法和各种垃圾回收器...
本文将深入探讨Java虚拟机的参数配置,特别是针对MyEclipse开发环境中遇到的内存不足问题。 首先,Java虚拟机参数配置是优化JVM性能的关键步骤。Java程序在启动时可以设置一系列参数,这些参数分为两种类型:标准...
10. **性能优化**:通过分析JVM的各种监控工具(如JConsole、VisualVM等),学习如何定位性能瓶颈并进行调优,包括堆大小调整、垃圾收集器选择、JVM参数设置等。 通过阅读这本书,开发者不仅能理解JVM的基本运作...
三、JVM参数配置 优化JVM性能的关键在于正确设置JVM参数。这些参数包括初始堆大小(-Xms)、最大堆大小(-Xmx)、新生代大小(-Xmn)、垃圾收集器选择(如-XX:+UseG1GC)以及内存分配策略(-XX:NewRatio等)。根据...
《实战JAVA虚拟机 JVM故障诊断与性能优化》是一本深度探讨Java虚拟机(JVM)的专著,旨在帮助开发者解决实际工作中遇到的JVM相关问题,提升系统的性能表现。通过对JVM内部机制的深入理解,我们可以更有效地调试、...
这种情况下,JVM(Java虚拟机)的内存配置和性能调优显得至关重要。 首先,当MyEclipse提示内存不足时,会建议你增加虚拟机的内存参数。推荐的内存参数包括`-Xmx512m`,用于设定堆内存的最大值为512MB,`-XX:...
通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化
JVM的参数配置是优化Java应用程序性能的关键环节,对于开发者来说,理解和掌握JVM参数的设置至关重要。 在Java中,JVM参数分为两种类型:标准(Standard)和非标准(Non-Standard)。标准参数以"-X"开头,这些参数...
通过合理的JVM参数配置,可以有效地管理内存分配、垃圾回收等关键资源,从而提升程序的稳定性和响应速度。本文将围绕"java虚拟机参数配置"这一主题展开讨论,重点解析Heap Space与PermGen Space的配置细节。 ### ...
随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java...《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。
JVM参数配置说明 JVM提供了丰富的参数设置,允许开发者根据应用程序的特点和运行环境的需求进行调整。例如,可以调整堆的大小、垃圾收集器的类型、栈大小等,以达到优化性能的目的。 通过以上对JVM内存模型和垃圾...
### Java虚拟机(JVM)参数配置说明 #### 概述 Java虚拟机(JVM)作为执行Java程序的核心组件,在不同的应用场景下,其性能表现至关重要。特别是在大型应用或企业级服务中,JVM的非标准参数配置对于提升系统性能与...
3. **利用注册表**:对于Windows环境下的Tomcat,还可以通过修改注册表来调整JVM参数。具体路径为`HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\TomcatServiceManager\Tomcat6\Parameters\JavaOptions`,...
### Tomcat 6.0 修改启动内存设置及 Java JVM 参数配置详解 #### 一、背景与目的 在部署和运行 Java Web 应用时,合理地配置应用服务器(如 Apache Tomcat)的内存是非常重要的。这不仅可以提升应用程序的性能,还...