昨天我从Eclipse切换到IntelliJ IDEA。

我也在WebSphere Server 7中使用JRebel。

现在一切似乎都运行得很好,除了当我修改一个Java文件并点击保存时,IntelliJ不会重新编译文件,以便JRebel拾取它。

Eclipse的“自动构建”特性解决了这个问题。

在IntelliJ IDEA中,我必须按CTRL+SHIFT+9来重新编译JRebel的相关类。如果跨两个文件进行更改,我必须在每个文件上都这样做,因为IntelliJ使用了保存所有机制,很难知道手动重新编译什么,我也不感兴趣。

难道没有办法让IntelliJ自己来做这个吗?


当前回答

实际上没有区别,因为两者都需要1次点击:

Eclipse:手动保存,自动编译。 IntelliJ:自动保存,手动编译。

最简单的解决办法就是习惯它。因为当您在IDE中度过大部分时间时,最好在一个IDE中养成快习惯,而不是在几个IDE中养成慢习惯。

其他回答

实际上没有区别,因为两者都需要1次点击:

Eclipse:手动保存,自动编译。 IntelliJ:自动保存,手动编译。

最简单的解决办法就是习惯它。因为当您在IDE中度过大部分时间时,最好在一个IDE中养成快习惯,而不是在几个IDE中养成慢习惯。

我最终录制了一个宏来保存并在一步中编译,并按Ctrl+s键映射到它。

对于Intellij 2021或更高版本,您将找不到注册表项

compiler.automake.allow.when.app.running

它已经移动到高级设置如下面的截图所示

来源:https://youtrack.jetbrains.com/issue/idea - 274903

我设法用宏来解决这个问题。

我开始录制一个宏:

点击编辑-宏-开始宏录制 单击“文件-全部保存” 单击“生成-制作项目” 单击编辑-宏-停止宏记录

命名一些有用的东西,比如“SaveAndMake”。

现在只需删除保存所有键绑定,并添加相同的键绑定到您的宏!

所以现在,每次我保存,它保存并进行脏编译,jRebel现在正确地检测所有更改。

我得到错误:一些罐子不在类路径。因此,我只是删除损坏的jar并执行以下步骤

1.Project >  Setting>Build,Execution,Deployment>Compiler>check build project automatically
2.CTRL+SHIFT+A find/search **registry** --Check for below param
compiler.automake.allow.when.app.running
compiler.automake.trigger.delay=500---According to ur requirement
3.Add devtool in pom.xml
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
4.Build ,If found any probelm while building ,saying some jar in not in class path.Just delete the corrupted jar
and re-build the project angain after sync with maven lib