如果你在Eclipse中进行Debug, 可以直接修改, 不必重启JVM就看到效果. 例如, 在blah()的下一行设置断点, 然后修改字符串blah为quz, 保存文件就可以继续运行新代码. 同样的方法可以使用在Tomcat Web应用的Debug中, 但是需要一些配置.
What’s the Catch? 有什么条件吗?
使用hot code replacement 有一些限制, 你不能使用JPDA HCR 去修改一个类的签名(例如增删成员变量), 或添加新类. 另外, 一些被称为 (“stack frames”) 的方法不能被修改, 包括 main 方法或任何通过反射调用的方法(any method invoked via reflection, that is, by using
java.lang.reflect.Method.invoke()).
商业的解决方案 JavaRebel
JavaRebel 是一个比JPDA HCR 强大得多的热部署工具.
使用JavaRebel 你可以增删方法, 增删Java类而不需要重启Tomcat, 不过这是商业软件 cost $1xx USD.
如何配置Eclipse使用热部署? 在Server里禁用项目的 “Auto Reloading”.
找到 “Servers” 模块(通过 Window -> Show View -> Servers打开).
双击里面的server 实例进入配置界面. 里面有两个标签页, Overview和Modules, 点击Modules,
找到相应的Project, 并点击Edit, 在“Auto reloading enabled”旁边取消勾选! 就这么简单.
tomcat比较轻快,非常适用于开发阶段使用。一般我们看官方文档,会认为在server.xml中进行如下配置即可支持热部署: java代码 但其实这样配置后,修改java代码会自动重启tomcat服务器的,并非真正的热部署。修改多个文件的话,需要多次保存
Photoshop|
Dreamweaver|
SVG|
WebGL|
Visual Studio|
PowerDesigner|
Eclipse|
Git|
Apache Ant|
Atom|
Composer|
CodeSmith|
Flex|
Gradle|
Maven|
Sublime Text3|
SVN|
Tableau|
Vim|
Chrome开发者工具|
OpenGL|
Unity|
Direct3D|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....