MyEclipse+Tomcat6.0+JDK1.6

附带记录一下MyEclipse中安装SVN插件的方法

 配置方法参考: http://www.myexception.cn/cvs-svn/473741.html

直接解压法

下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
下载SVN插件:site-1.8.22.zip
解压后将其全部文件拷贝至:D:\MyEclipse\MyEclipse 10.6\dropins(MyEclipse的安装目录)
重启MyEclipse即可出现SVN!


首先要知道MyEclipse+Tomcat6.0+JDK1.6这三者的关系,以及运行条件

MyEclipse是用于Java开发的IDE

Tomcat是服务器端server,通常在本地搭建,运行地址为http://localhost:8080   ——由于Tomcat也是用Java编写的,故其运行环境也需要jdk的支持

JDK1.6——这是JDK的开发版本之一,可以到Oracle官网上下载。是Java程序运行环境。



今天部署项目的时候老是报出ClassNotFound的错误,就是jar包找不到,找了找jar包我也正常引用了呀,找啊找,问题就是MyEclipse部署时候没有把jar包全部部署到C:\apache-tomcat-6.0.43\webapps\loginAuth\WEB-INF\lib 的lib包中。。。。(估计是我的MyEclipse设置问题,需要找找问题,不过为了先把环境搭起来,我就手动把jar包拷到该目录下了,然后再次部署项目就OK了)


另外今天搭建环境时候还遇到 了一个异常:java.lang.OutofMemoryError:PermGen space

解决方案:配置tomcat下JDK的option

-Xms1024m -Xmx1024m -XX:MaxPermSize=256m

-Xms和-Xmx是设置Tomcat使用的内存的大小

-XX:MaxPermSize 指定类空间(用于加载类)的内存大小





下面摘自StackOverflow

 

Common mistakes people make is thinking that heap space and permgen space are same, which is not at all true. You could have lot of space remaining in the heap but still can run out of memory in permgen.

堆空间和permGen(永久代)空间是不一样的,即使你的heap空间还有很多的剩余空间,在permgen中仍可能出现内存溢出问题

Common causes of OutofMemory in PermGen is ClassLoader. Whenever a class is loaded into JVM, all its meta data, along with Classloader, is kept on PermGen area and they will be garbage collected when the Classloader which loaded them is ready for garbage collection. In Case Classloader has a memory leak than all classes loaded by it will remain in memory and cause permGen outofmemory once you repeat it a couple of times. The classical example is 、

Java.lang.OutOfMemoryError:PermGen Space in Tomcat.

一般情况下,permgen的内存溢出是由于CLassLoader。这是因为当把一个类加载到JVM时,该类所有的数据和类加载信息被保存在PermGen区域中。并且当CLassLoader加载完成以后,他们将会变成垃圾。

以下是解决方法:

Now there are two ways to solve this:
1. Find the cause of Memory Leak or if there is any memory leak.
2. Increase size of PermGen Space by using JVM param -XX:MaxPermSize and-XX:PermSize.

You can also check 2 Solution of Java.lang.OutOfMemoryError in Java for more details.


在中国的开源社区中,有一个人是这样解释PermGen概念的:

http://www.oschina.net/question/12_9040#tags_nav

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。 如果你的WEB APP下都用了大量的第三方jar, 其大小 超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法: 手动设置MaxPermSize大小
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

修改TOMCAT_HOME/bin/catalina.sh
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

原来SUN 的JVM把内存分了不同的区,其中一个就是permanent区用来存放用得非常多的类和类描述。本来SUN设计的时候认为这个区域在JVM启动的时候就固定了,但他没有想到现在动态会用得这么广泛。而且这个区域有特殊的垃圾收回机制,现在的问题是动态加载类到这个区域后,gc根本没办法回收!


java.lang.OutOfMemoryError: Java heap space
Heap size 设置
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可
进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
解决方法:手动设置Heap size
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值