`

JDK扩展DCEVM让WEB程序完全不重启调试

    博客分类:
  • J2EE
 
阅读更多

 

目前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扩展版本。

 

最后, 最好只用在开发环境,很方便,很快,生产环境就算了哈。

希望对你又帮助!~

 

 

  • 大小: 16.8 KB
  • 大小: 67.3 KB
  • 大小: 68.3 KB
  • 大小: 79.1 KB
  • 大小: 43.4 KB
分享到:
评论
5 楼 liangbo11 2017-06-09  
eclipse都无法启动
4 楼 zp820705 2013-08-30  
如果慢,建议升级下,开发机一般4G,建议8G,因为现在内存实在是便宜了。
3 楼 zp820705 2013-08-30  
TOMCAT和jetty都可以,我在团队推广了,他们有用tomcat.6.x和7.x可以.jetty6-8我一直使用,都可以。但团队也有说不可以的情况,我看了下,一般是基于spring容器的代码变动,因为需要依赖spring容器从新加载,那是不可以的。
2 楼 gnomewarlock 2013-07-19  
gnomewarlock 写道
确定可以?
TOMCAT下无效

电脑慢,是可以的。
1 楼 gnomewarlock 2013-07-19  
确定可以?
TOMCAT下无效

相关推荐

    DCEVM+HotSwapAgent实现java类热加载工具

    jdk-8u181-macosx-x64.dmg DCEVM-8u181 hotswap1.4.2

    使用JDK开发Java应用程序

    使用JDK开发Java应用程序 使用JDK开发Java应用程序是一种常见的Java开发方式,JDK(Java Development Kit)提供了一个完整的Java开发环境,包括Java编译器、Java虚拟机、Java标准库等。以下是使用JDK开发Java应用...

    《Java-web程序设计》教案.pdf

    【Java Web程序设计】课程主要关注的是如何使用Java技术来构建Web应用程序,特别是通过Java Server Pages (JSP) 技术。本课程的教学目标旨在使学生掌握JSP的运行环境搭建,以及如何编写和运行简单的JSP程序。教学的...

    jdk1.7.0_51_dcevm(part2)

    jdk1.7.0_51_dcevm 共两个,绿色,解压即用

    DCEVM的基于JDK8-181版本的拓展jar包

    DCEVM的基于JDK8-181版本的拓展jar包

    hotswap-agent+DCEVM-full

    hotswap-agent-1.3.1-SNAPSHOT.jar+DCEVM-full-7u79-installer.jar 适用jdk版本1.7.0_79 DCEVM-full-7u79-installer.jar需要在所在目录用java -jar命令运行,jvm运行只指定加载了DCEVM的jdk,运行时jvm设置参数 ...

    JDK配置程序,一键配置安装JDK

    - JDK是开发Java应用程序的基础,提供了编译、调试和运行Java代码所需的全部工具。 - 它包含JRE(Java Runtime Environment),使得用户可以在计算机上运行Java应用程序。 - JDK中的Java开发工具如javac、jar等,...

    JDK调试命令

    根据提供的标题、描述以及部分内容,我们可以总结出与“JDK调试命令”相关的多个知识点: ### 一、配置Java开发环境 #### 1. 设置环境变量 在Windows操作系统中配置Java开发环境时,需要通过以下步骤设置环境变量...

    JDK自带调试工具doc

    在Java开发过程中,JDK提供了一系列内置的调试工具,这些工具对于优化性能、排查问题以及理解JVM(Java虚拟机)内部运作至关重要。本篇将详细介绍JDK自带的几个主要调试工具,包括`jmap`、`jstack`、`jconsole`,...

    jdk1.7 说明帮助文档, 不是主程序

    jdk1.7 说明帮助文档, 不是主程序

    Java-JDK数据库系统开发Web开发源码

    本教程"Java-JDK数据库系统开发Web开发源码"旨在深入探讨如何使用Java编程语言和Java Development Kit (JDK)进行Web开发,特别是与数据库系统的集成。 首先,Java是一种多平台、面向对象的编程语言,广泛应用于企业...

    在jdk上运行java程序

    JDK是Sun Microsystems公司(现已被Oracle收购)提供的官方Java开发工具包,它包含了编译、调试、运行Java应用程序所需的所有工具。 假设已经将JDK安装到了`C:\JAVA\jdk1.5.0_03`目录下。接下来需要进行系统环境...

    trava-jdk-8-dcevm:在Travis上构建的dcevm-8(正在建设中)

    使用travaJDK作为替代jdk,不要使用选项-XXaltjvm=dcevm ,因为dcevm主JVM在此发行版中。 对于HotswapAgent配置,请查看如果通过-XXaltjvm = dcevm将dcevm用作替代JVM,只需从travaJDK软件包中提取libjvm.so并将其移...

    springboot web程序运行在jdk1.6、tomcat6的demo

    这个Demo项目展示了如何在较旧的环境,如JDK 1.6和Tomcat 6上运行SpringBoot 1.5.6的Web程序。尽管SpringBoot通常建议使用更新的Java版本和内置的Tomcat服务器,但有时由于兼容性或遗留系统的需求,可能需要在较低...

    jdk-8u201-windows-x64 JAVA JDK 1.8

    JDK的全称是Java Development Kit,即Java开发工具包,包含JRE与其它开发工具 作为开发人员,JDK是我们必须安装使用的,Java每个版本的更新实际上就是JDK的更新 ...而程序开发者必须安装JDK来编译、调试程序。

    精通Java-JDK数据库系统开发Web开发

    JDK(Java Development Kit)是开发和运行Java程序的基础,它包含了Java编译器、Java运行时环境以及一系列用于调试、性能分析和文档生成的工具。本资源“精通Java-JDK数据库系统开发Web开发”显然旨在帮助开发者深入...

    spring对应jdk1.8的jar包

    1. **语言特性支持**:JDK 1.8引入了许多新特性,如Lambda表达式、方法引用来支持函数式编程,而Spring 3.2.0可能并未完全适配这些特性。这可能导致在编写代码或使用某些API时,遇到编译错误或运行时异常。 2. **...

    jdk1.8.exe文件运行安装

    Java Development Kit(JDK)是Java编程语言的核心组件,它包含了一组开发工具,使得开发者能够编译、调试和运行Java应用程序。JDK 1.8是Oracle公司发布的Java的一个重要版本,它引入了许多新特性,提升了开发效率并...

    jdk1.7.0_51_dcevm(part1)

    jdk1.7.0_51_dcevm 共两个,绿色,解压即用

    精通Java_JDK 数据库系统开发Web开发(实例代码)

    【标题】:“精通Java_JDK 数据库系统开发Web开发(实例代码)”着重强调了Java编程语言、JDK(Java Development Kit)的使用,以及在数据库系统和Web开发领域的实践应用。这个主题涵盖了从基础到高级的Java编程技术,...

Global site tag (gtag.js) - Google Analytics