目前JDK默认支持对方法体内部的修改,可以重新自动加载。所以在WEB工程中,可以不重启WEB容器的情况下修改方法体内部的实现,进行程序调试。但是很多时候需要新增实例变量和方法,这个时候,默认的JDK就不能支持。
这里推荐一个动态代码扩展的VM:The Dynamic Code Evolution Virtual Machine,可以实现不重启WEB容器的情况下,新增实例变量和方法,并动态reload后进行调试。
官方下载:http://ssw.jku.at/dcevm/binaries/
官方介绍:
The Dynamic Code Evolution Virtual Machine (DCE VM) is a modification of the Java HotSpot(TM) VM that allows unlimited redefinition of loaded classes at runtime. The current hotswapping mechanism of the HotSpot(TM) VM allows only changing method bodies. Our enhanced VM allows adding and removing fields and methods as well as changes to the super types of a class.
一般开发环境是windows 较多,下载WIN版本进行配置。
官方说JDK1.6的update26不兼容,之后的应该都可以,我使用update29是OK的。
我测试发现,直接使用JDK1.6_update29或以上的几个版本,使用Jetty和tomcat都可以实现实例变量和方法级的变更自动reload。但是Eclipse3.7版本IDE对修改后的JDK不兼容。所以,这里采用的方案是,ECLIPSE-IDC使用独立的原生JDK,开发工程和调试器使用扩展后的JDK,所以这里使用2个JDK。
配置方案:
- ECLIPSE-IDE运行环境:jdk1.6.0_38 (原生)
- 工程使用的编译环境和调试环境:jdk1.6.0_29(dcevm扩展)
1.安装2个JDK
首先安装两个JDK版本,要求在JDK1.6update26以上,官方推荐JDK1.7,但是我还是暂时使用JDK1.6版本。怎么安装这里就省略了。我分别安装的是JDK1.6的update29和update38,统一安装在d:\tools\java下面。安装目录分别为:D:\tools\java\jdk1.6.0_29和D:\tools\java\jdk1.6.0_38。
2.配置环境变量
配置操作系统JAVA环境变量,用于IDE或JAVA程序的运行时环境。
JAVA_HOME=D:\tools\java\jdk1.6.0_38
PATH=%JAVA_HOME%\bin;...
3.安装dcevm扩展到编译和调试JDK
运行dcevm扩展jdk1.6.0_29,用于工程编译和调试JDK。
进入已经下载的dcevm-*-win.jar所在目录,运行启动配置界面。
E:\tools\develop\java > java -jar dcevm-0.2-win.jar
会弹出安装界面,直接点击对应的JDK和JRE,然后点击安装即可。安装程序会备份原始JDK的 bin/client/jvm.dll and bin/server/jvm.dll文件,并使用一个修改版本替换,然后添加dcevm.jar到lib/ext/下,实现原始JVM的扩展。而且这个可以卸载和还原的。
下图所示,我操作系统中安装了多个JDK,选择作为工程编译和调试的jdk1.6.0_29版本安装dcevm,然后点击“Test Instanllation”测试,测试通过即可,如果以后不想使用或换版本,可以卸载还原。
4.打开ECLIPSE-IDC进行配置
配置工程编译的JDK和JRE,这里选择已经dcevm扩展后的jdk1.6.0_29
如果使用maven+jetty的方式调试,则配置调试的JDK选择jdk1.6.0_29(dcevm)
如果使用tomcat插件,则配置VM选项为jdk1.6.0_29(dcevm)
好了,配置完成,你可以直接使用你喜欢的方式调试工程,最重要的是修改调试的JDK为dcevm扩展版本。
最后, 最好只用在开发环境,很方便,很快,生产环境就算了哈。
希望对你又帮助!~
相关推荐
精通JavaJDK、数据库系统开发Web开发程序源文件
jdk1.7.0_51_dcevm 共两个,绿色,解压即用
JDK自带调试工具doc JDK自带调试工具doc JDK自带调试工具doc
jdk1.7.0_51_dcevm 共两个,绿色,解压即用
DCEVM的基于JDK8-181版本的拓展jar包
JAVA编程调试程序使用的jdk环境配置
jdk1.7 说明帮助文档, 不是主程序
使用JDK开发Java应用程序 使用JDK开发Java应用程序
JDK配置程序,一键配置安装JDKJDK配置程序,一键配置安装JDKJDK配置程序,一键配置安装JDKJDK配置程序,一键配置安装JDKJDK配置程序,一键配置安装JDK
使用travaJDK作为替代jdk,不要使用选项-XXaltjvm=dcevm ,因为dcevm主JVM在此发行版中。 对于HotswapAgent配置,请查看如果通过-XXaltjvm = dcevm将dcevm用作替代JVM,只需从travaJDK软件包中提取libjvm.so并将其移...
dicom 转jpg jdk扩展包
总是有人让我帮忙配置JDK环境变量,我自己换系统也要配置,觉得很麻烦,今天花了点时间用C#写了个自动配置环境变量的程序,拿出来给大家分享,顺便说下,win10有点蛋疼,path变量不能用%java_home%,只能指定全路径...
JDK的全称是Java Development Kit,即Java开发工具包,包含JRE与其它开发工具 作为开发人员,JDK是我们必须安装使用的,Java每个版本的更新实际上就是JDK的更新 ...而程序开发者必须安装JDK来编译、调试程序。
JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11...
Linux下JDK安装程序,安装包用程序分割成三份,CSDN上传文件限制在60M,安装包大小在135M,需要下载三份文件,然后使用程序进行合并,合并文件的程序已经写好了; 具体操作参照博客:...
java组件开发(11)扩展JDK集合类
springboot 1.5.6 web程序运行在jdk1.6、tomcat6的demo
Java-JDK、数据库系统开发、Web开发学习笔记
ACPCHE+RESIN+JDK1.5架设WEB服务器.pdf
JDK配置测试程序JDK配置测试程序JDK配置测试程序JDK配置测试程序JDK配置测试程序JDK配置测试程序JDK配置测试程序JDK配置测试程序