- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WINDOWS下部署JAVA的项目 ORACLE 数据库
一、搭建java服务器环境 (基于Windows 环境下)
1、安装jdk
设置环境变量:
JAVA_HOME c:\j2sdk1.4.2
classpath .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
path %JAVA_HOME%\bin
2、安装Tomcat:
设置环境变量:
CATALINA_HOME:d:\Tomcat
CATALINA_BASE:d:\Tomcat
TOMCAT_HOME:d:\Tomcat
把tomat 安装目录下的common\lib 下的servlet.jar 追加到classpath 中去,修改后的
classpath 如下:
classpath .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOM
E%\common\lib\servlet-api.jar;
二、Java 内存溢出详解
一、常见的Java 内存溢出有以下三种:
1.java.lang.OutOfMemoryError:Javaheap spaceJVM Heap (堆)溢出
JVM 在启动的时候会自动设置JVM Heap 的值,其初始空间(即-Xms)是物理内存的
1/64,最大空间(-Xmx)不可超过物理内存。
可以利用JVM 提供的-Xmn -Xms -Xmx 等选项可进行设置。Heap 的大小是Young
Generation 和TenuredGeneraion 之和。
在JVM 中如果98%的时间是用于GC,且可用的Heap size 不足2%的时候将抛出
此异常信息。
解决方法:手动设置JVM Heap (堆)的大小。
2.java.lang.OutOfMemoryError:PermGen space PermGen space 溢出。
PermGen space 的全称是Permanent Generation space,是指内存的永久保存区域。
为什么会内存溢出,这是由于这块内存主要是被JVM 存放Class 和Meta 信息的,
Class 在被Load 的时候被放入PermGen space 区域,它和存放Instance 的Heap 区
域不同,sun 的 GC 不会在主程序运行期对PermGen space进行清理,所以如果你的
APP 会载入很多CLASS 的话,就很可能出现PermGen space 溢出。
解决方法: 手动设置MaxPermSize 大小
3.java.lang.StackOverflowError 栈溢出
栈溢出了,JVM 依然是采用栈式的虚拟机,这个和C 和Pascal 都是一样的。函数
的调用过程都体现在堆栈和退栈上了。
调用构造函数的 “层”太多了,以致于把栈区溢出了。
通常来讲,一般栈区远远小于堆区的,因为函数调用过程往往不会多于上千层,而
即便每个函数调用需要 1K 的空间(这个大约相当于在一个C 函数内声明了256个
int 类型的变量),那么栈区也不过是需要 1MB 的空间。通常栈的大小是1-2MB
的。
通常递归也不要递归的层次过多,很容易溢出。
解决方法:修改程序。
二、解决方法
在生产环境中tomcat 内存设置不好很容易出现jvm 内存溢出。
1.startup.bat 启动
在tomcat_home/bin 目录下找到catalina.bat,用文本编辑器打开,加上下面一行:
set JAVA_OPTS -Xms1024M -Xmx1024M -XX:PermSize 256M -XX:MaxNewSize 256M
-XX:MaxPermSize 256M
解释一下各个参数:
-Xms1024M:初始化堆内存大小 (注意,不加M 的话单位是KB)
-Xmx1029M:最大堆内存大小
-XX:PermSize 256M:初始化类加载内存池大小
-XX:MaxPermSize 256M:最大类加载内存池大小
-XX:MaxNewSize 256M:这个还不清楚哈,有知道的说声
还有
文档评论(0)