`
takkymj
  • 浏览: 128182 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

eclipse使用jre的原理与配置

阅读更多
eclipse启动时寻找jre的顺序
如果eclipse.ini中配置了-vm参数,那么则使用这个参数指定的JRE;
否则就去查看eclipse安装目录下是否有JRE文件夹,如果有的话就使用这个JRE;
否则的话就去系统中查找安装的JRE,如果还找不到的话就报错。
如果要修改项目使用的jre而不卸载系统默认jre的话,可以有两种方式:
直接把要使用的JRE文件夹拷贝到Eclipse目录下;
打开eclipse根目录下的eclipse.ini文件,加入: -vm [你的jre的路径];
引用:http://blog.csdn.net/jenhy/archive/2008/03/31/2233575.aspx by Jenhy

eclipse.ini内存设置
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
这里有几个问题:
1. 各个参数的含义什么?
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?

下面我们一一进行回答

1. 各个参数的含义什么?

参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。

堆(Heap)和非堆(Non-heap)内存
按 照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中。
堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx 指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到- Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
JVM内存限制(最大值)
首 先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然 可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统 下为2G-3G),而64bit以上的处理器就不会有限制了。
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?

通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:

1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;

2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理 内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。

3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?

那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢?这是因为我们没有遵守eclipse.ini文件的设置规则:

参数形如“项 值”这种形式,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:\Java\jre1.6.0\bin\javaw.exe参数设置虚拟机,在eclipse.ini文件中要写成这样:

-vm
C:\Java\jre1.6.0\bin\javaw.exe
按照上面所说的,最后参数在eclipse.ini中可以写成这个样子:

-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。

另外需要说明的是,Eclipse压缩包中自带的eclipse.ini文件内容是这样的:

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
其 中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区 别就是前者是eclipse.exe启动的时候设置的参数,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把 –launcher.XXMaxPermSize和下一行使用#注释掉。


3. 其他的启动参数。 如果你有一个双核的CPU,也许可以尝试这个参数:

-XX:+UseParallelGC

让GC可以更快的执行。(只是JDK 5里对GC新增加的参数)


文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/4_webprogram/jsp/jsp_js/2008428/111710.html
分享到:
评论

相关推荐

    配置eclipse 在eclipse中查看源码,配置说明、插件

    对于已有的库,你可以尝试使用"Eclipse"菜单 -> "Preferences" -> "Java" -> "Installed JREs",选择对应的JRE,然后点击"Source Attachment",选择或浏览到源码jar位置。 二、查看源码插件 1. **PDE Source ...

    Eclipse配置Tomcat的方法[图解

    **知识点详解:Eclipse配置Tomcat的步骤及原理** 标题和描述中提到的“Eclipse配置Tomcat的方法[图解]”聚焦于如何在Eclipse IDE中集成Apache Tomcat服务器,以便开发者能够在同一环境中开发、测试和运行Java Web...

    配置Eclipse 3.3 + tomcat 6.0 + lomboz 3.3进行Web开发

    #### 四、综合配置与测试 完成上述配置后,即可开始使用Eclipse 3.3、Tomcat 6.0和Lomboz 3.3进行Web开发。 - **创建新项目:** - 在Eclipse中选择**File > New > Dynamic Web Project**。 - 配置项目名称、目标...

    jad在eclipse配置查看jar包源码.rar

    1. 配置Jad时,确保Jad的版本与Eclipse版本兼容,否则可能无法正常工作。 2. 如果JAR文件的源码是加密或混淆过的,jad可能无法反编译出可读的源码。 3. 对于第三方库,某些提供者会在Maven仓库或其官方网站提供源码...

    eclipse中怎么配置tomcat

    而对于MyEclipse的用户,由于MyEclipse本身集成了大量功能,其使用方法与Eclipse有所不同,但基本的项目配置和运行原理是相通的。 通过上述步骤,你可以在Eclipse中成功配置Tomcat服务器,安装并使用Lomboz插件,为...

    eclipse4.3安装配置反编译插件jad

    总的来说,安装和配置JADclipse插件能够极大地增强Eclipse的功能,使开发者能够在不拥有源代码的情况下理解Java库的工作原理。这个过程对于软件维护、逆向工程和学习新的API都大有裨益。在实际应用中,记得遵循版权...

    jre-6u26工具

    对于开发者来说,特别是使用Eclipse这样的集成开发环境(IDE)时,确保正确的JRE配置至关重要。Eclipse需要指向有效的JRE安装位置才能编译、运行和调试Java代码。在Eclipse中,用户可以通过“Window” -> ...

    eclipse配置性能提高讲解

    ### Eclipse配置性能提升详解 #### 一、理解与优化Eclipse性能 Eclipse是一款非常流行的开源集成开发环境(IDE),广泛应用于Java等语言的软件开发过程中。然而,在使用Eclipse的过程中,很多开发者会遇到诸如...

    使用Eclipse编译运行MapReduce程序.doc

    - **Eclipse配置**:包括JRE设置、项目构建路径、Hadoop配置文件的引入等,以确保MapReduce程序能正确运行在Hadoop环境中。 通过这个实验,开发者不仅可以熟悉Eclipse和Hadoop的集成,还能深入理解MapReduce的工作...

    JRE5.0/6.0

    在这里,它们可能被设计用来启动或配置与JRE相关的应用。另一个文件"javajre.exe"是Java运行时环境的可执行文件,它是JRE的核心组成部分,负责解析并执行Java字节码。 总的来说,JRE5.0和6.0是Java发展的重要阶段,...

    Eclipse精要与高级开发技术(PDF)

    - 安装与配置:讲解如何下载、安装Eclipse,并根据个人需求进行定制化设置,如JRE版本选择、工作空间设定等。 - 工作区和工作台:介绍Eclipse的工作区概念,以及工作台的基本操作,包括创建、打开和关闭项目。 - ...

    Eclipse+MyEclipse安装及环境配置

    【Eclipse+MyEclipse 安装及环境配置详解】 在IT开发领域,Eclipse 和 MyEclipse 是两款广泛使用的Java开发工具。Eclipse 是一个开源的集成开发环境(IDE)...此外,不同的操作系统可能略有差异,但基本配置原理相同。

    eclipse配置tomcat和安装tomcat.docx

    在IT行业中,Java Web开发是一项重要的技能,而Tomcat作为一款轻量级的Java应用服务器,扮演着不可或缺的角色。...同时,理解Servlet和JSP的工作原理,以及它们如何与Tomcat交互,对于深入理解Java Web开发至关重要。

    书城所需jre包与tomcat

    总的来说,【书城所需jre包与tomcat】涉及到的是Java开发和部署的基础,对于理解Java生态和Web服务器的工作原理具有重要意义。掌握这些知识对于成为Java开发者或者运维人员来说是必不可少的。在实际工作中,理解如何...

    eclipse搭建spring2.5

    在新建项目的配置中,确保JRE版本与Spring 2.5兼容。点击"Next",在"Libraries"选项卡下,点击"Add External JARs...",选择之前导入的Spring库jar文件,然后点击"Finish"。 3. **配置Spring项目**:创建一个名为`...

    eclipse反编译器与安装方法

    8. **配置反编译器**:重启Eclipse后,进入"Window" -> "Preferences" -> "Java" -> "Installed JREs",选择你的JRE,点击"Source"标签页,添加一个新的附件路径,指向JD-Eclipse插件中的反编译库(通常在JD-Eclipse...

    eclipse3的tomcat插件

    本文将详细介绍如何在Eclipse3中安装和使用Tomcat插件。 首先,我们要了解`com.sysdeo.eclipse.tomcat_3.0.0.beta`这个文件。这是一个早期版本的Sysdeo Eclipse Tomcat插件,它允许Eclipse与Tomcat服务器无缝集成。...

    JAVAECLIPSE下配置WINDCHILL远程调试WINDCHILL学习笔记.pdf

    ### JAVAECLIPSE 下配置 WINDCHILL 远程调试详解 #### 一、配置概述 本文档旨在详细介绍如何在 JavaEclipse 环境下配置 Windchill 进行远程调试的过程。远程调试是指在一个主机上调试运行在另一台机器上的应用程序...

    JAVA热加载eclipse插件

    本文将详细介绍JAVA热加载Eclipse插件的原理、使用方法以及如何在JDK中进行配置。 1. **热加载原理** 热加载的核心是监视和替换运行时的类文件。当开发者修改了源代码并保存后,插件会检测到变化,并在不中断程序...

    eclipse自动获取源码.zip

    另外,确保Eclipse的JRE设置正确,使用的是包含源码的JDK而非仅包含运行时库的JRE。 6. **自动下载源码**: 对于Maven或Gradle项目,可以通过在pom.xml或build.gradle文件中配置依赖,Eclipse可以自动下载并附加...

Global site tag (gtag.js) - Google Analytics