问题标签 [hotswap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 长时间运行的循环在 intellij 中变得不可调试
我使用 IntelliJ 开发和调试应用程序。很多时候,我在调试过程中热交换类。有时(只是有时)我无法在新添加的代码中设置断点。IDE 显示断点是有效的——但不会停在那里。
我观察到这种情况发生在多次运行的循环中。有人遇到过类似的问题吗?我怎样才能解决这个问题?
(Intellj8, JDK 1.6.x)
c - Is it possible to do hot code swapping in C?
this
en.wikipedia.org/wiki/Hot_swapping#cite_note-1
says that VS can do it with the help of its debugger. Does gdb provide a similar functionality ?
this is the closest i could find, but doesn't seem to be ready to be used:
http://www.aitdspace.gr/xmlui/handle/123456789/219
dlopen/dlsym/dlclose are also close, but will not work for -lmylib referenced libraries (reference count never gets to 0).
alternatives i've considered:
1) using -Wl,-wrap,foo and on __wrap_foo() { func = dlopen(); func(); }
2) making libfoo.so a shared library and when we need to hotswap we dlopen(RTLD_GLOBAL) to load the new code and provide updated symbols to the next call to foo();
1) doesn't work very well because it requires me to enumerate all the functions i want to hotswap, which are all of them.
2) doesn't work very well because when foo() is called, the new code is loaded, but foo has forever the reference to that symbol. calling dlopen multiple times make foo to be re evaluated.
java - Eclipse:实时编辑和运行代码
在 Eclipse 中编辑 Java 代码时,我可以在代码以各种方式运行时对其进行修改,并使这些更改生效而无需重新启动我的程序。
此功能背后的技术是什么?它是 Eclipse 的一部分,还是我可以使用命令行工具和 JDK 附带的工具来完成?
java - Java 类重载
我正在使用 jboss 服务器并将我的所有类都放在一个 jar 文件中。
现在,如果我更改任何 java 文件,我需要替换 jar 中的类文件并且必须重新启动服务器。
有没有办法在不重启服务器的情况下动态加载新创建的类文件?
提前致谢。
java - 通过热交换机制在运行时更改方法
假设我们有一个简单的 Java 程序,它只包含一个类:
编译运行后,输出如下:
今天是一个美好的一天,数字为 0
今天是一个美好的一天,数字 1
今天是一个美好的一天,数字 2
今天是一个美好的一天,数字 3
...
我的问题:是否存在(或即将出现)replacable
在运行时交换方法的某种方式?像HelloWorld
用新版本编写另一个版本replacable
,编译它,然后在已经运行的 JVM 中编译旧版本?
所以,如果我这样写新版本:
有没有类似于Erlang 的热代码交换的东西,我可以这样做:
- 运行原始程序
- 写修改版
- 使用命令行程序,连接到正在运行的 JVM 并替换现有方法
这样,在运行时,就会发生这种情况:
今天是个好日子,数字 15000
今天是个好日子,号码 15001
今天是更好的一天,数字 15002
今天是更好的一天,数字 15003
...
假设上述程序是独立的,运行在标准的 Java SE 环境中,类路径上没有其他内容,所以它几乎是一个 Hello world 风格的程序。
注意:我知道存在诸如字节码操作 ( cglib )、aspectJ、jRebel、JMX、Java EE 中的方法热交换等技术,但它们不是我所想的。想想二郎。
wcf - 什么 .NET 4.0 技术提供模块化的动态修复(热插拔)REST 服务托管?
所以,现在是多年的梦想,但希望永存。是否有框架/服务 (WCF/WAS/MVC/ETC) 允许您添加/更新服务,而对正在进行的请求或“兄弟”服务的影响最小。
梦想看起来像这样:
IIS7
可插拔 REST 服务主机
共享资源(存储库、质量保证)
服务 A - 放在生产文件夹中,提供新的 REST 方法
服务 B - 更新“飞行中”以修复错误,最小化请求中断
我认为答案可能涉及 WAS 或可能涉及 AppFabric(梦想并不谨慎),但由于我从未设法找到一种简单的方法来使其工作,我欢迎您就如何最好地实现我认为我们的 PHP 同志的意见提供意见做就是了”。
google-app-engine - 如何让 intellij 中的 Groovy hotswap 工作?
我正在使用 Groovy 和 Google App Engine。我正在尝试 Intellij,但我不知道如何让热交换为 Groovy 类的更改工作。它在 Eclipse 中对我有用。为了在 Intellij 中工作,我需要做些什么特别的事情吗?
scala - 如何在没有jetty-restart的情况下加载已导入的修改后的类进行扩展?
我使用 scalate 作为我的视图模板和 sbt + jrebel。但是我发现如果导入到scalate的类被修改了,我们必须重新启动jetty,否则可能会出现复杂错误。
代码非常简单:
webapp/WEB-INF/web.xml
src/main/scala/test.scala
webapp/index.jade
禁用码头的自动重新加载
然后启动码头:
访问主页:
它显示正确:
然后我修改test.scala
为:
再次访问页面,正确:
然后修改方法名:
并index.jade
调用b()
:
再次访问,显示错误:
从这个示例中我们不知道哪里错了,但是在我的另一个项目中,我们可以看到原因: Failed compile index.jade, value b()
is not found
所以我必须重新启动码头:
再次访问,一切顺利。
如何解决这个问题,或者有没有其他方法可以在不重新启动的情况下使用 scalate?
更新
经过近1周的尝试,我不得不放弃。我尝试了所有我能找到的解决方案,但如果不重新启动它仍然无法编译。
现在,我只是在没有 jrebel 的情况下运行 sbt,并在修改类时让码头重新加载 webapp(不监视缩放视图)。目前,它需要 3 到 5 秒,不算太长。
最后,感谢@James 的帮助
wpf - 如何创建使用可重载插件的 WPF 应用程序?
我手头有一个有趣的问题。
我需要创建一个 WPF 应用程序来承载多个用户控件。(该应用程序就是这样做的 - 作为具有 UserControls 对接能力的容器)
该应用程序还将作为另一个热交换组件托管 UserControls 的数据模型。(我计划为每个组件使用内部队列,以便可以交换组件。)
这些用户控件必须是可插入的(这很容易),并且在运行时可重新加载(这似乎很难/不可能)。(AppDomains 似乎是这里的答案,但我不知道 AppDomain 限制以外的限制关于 MarshalByValue 和 marshalByRefObject 是否有任何 GUI 限制?)在运行时“可重新加载”,就像在应用程序启动时热交换 UI 组件一样。
我还希望 UserControl 上的上下文菜单有一些来自 Host 的项目和一些来自 UserControl 本身的项目。
我也有逻辑来控制主机和用户控件之间的焦点(更改焦点事件的边框颜色等)无缝(跨主机和用户控件的选项卡)。
顺便说一句,我还希望 UserControl 启用 ActiveX 以便与 Excel 等 ActiveX 容器集成。
这将使我在单独运行 UserControl(单元测试)、在容器中(无缝导航以及与容器和其他相关 UserControls 集成)以及作为 ActiveX 控件与 ActiveX 容器集成方面具有灵活性。
我想知道这是否可能,以及是否有支持这一点的框架(MAF?)。任何指向示例或文档的指针都会有所帮助。
先感谢您,
问候, 文。
java - 使用 Maven 查找和替换 jar 文件
假设您正在处理一个运行在某个应用程序服务器上的大项目(比如说 Tomcat,但它也可能是 Jboss、Jetty 或其他)。该项目由几个战争组成,而每个战争都包含很多jar。整个东西是使用 Maven 构建的,构建它需要花费大量时间。
现在,假设开发人员只对一个生成一个小 jar 的模块进行了更改。为了继续工作和测试更改,开发人员需要在相关的战争中替换这个 jar 并重新启动服务器(有时重新部署战争就足够了)。它比重建整个应用程序要快得多。我见过很多开发人员(包括我自己)为此任务创建 shell 脚本。
但是,如果它可以使用 maven 自动完成,它可能会好得多。假设在运行“mvn install”时,插件还将转到某个预定义位置(例如 ${tomcat}/webapps)并搜索 myjar.jar 的所有外观并将它们替换为新版本(我们有多个 jar,记得吗? )
有人知道这样的插件吗?或者可能是关于可以完成相同任务的其他工具?或者有更好的想法怎么做?
更新:顺便说一句,如果我找不到解决方案,我可能会自己实现它。因此,如果您有兴趣,请告诉我。我需要一些 Beta 测试人员 :)
更新:所以我自己创建了插件。请参阅http://code.google.com/p/replace-file-plugin/任何反馈表示赞赏。