jrebel 啟動失敗的處理
今天使用 jrebel
啟動項目的時候,突然啥日志都沒有,只有一句Disconnected from the target VM, address: '127.0.0.1:60229', transport: 'socket'
很是莫名其妙。這個時候啟動其他項目居然是可以的,說明不是插件的原因,應該是項目問題。
而另一個同學說,他可以啟動。我...,難道我是天選之子么,一定是有原因的。
於是重新拉項目,啟動,一氣呵成,居然成功了。哎,不是我電腦的原因。
接下來就是清理項目中各種垃圾文件(沒有提交到git的文件),發現還是不能成功。
沒有辦法,啥日志都沒有,jrebel 應該有自己的日志文件啊,於是去插件配置里找:在 Advanced 菜單下,有jrebel 日志路徑,也可以直接點擊show Log即可。
1. 查看日志
jrebel.log
文件里沒有報錯日志,只有最后一行有一個這個:topmost class in hierarchy is not instrumented class java.nio.file.attribute.FileTime loaded with: null
.
在項目里面查找,這個類是 jdk 自帶的,應該不會加載不到啊。
2. 修改 jre
加上之前在百度上搜索的,可以修改一下debug configuration
里的JRE為自己下載的 jre,而不使用默認的。
修改之后就可以啟動了。。。
而更奇怪的是,我把 jre 切換到原來的 default
,居然又可以啟動成功了。。。
好吧,我投降了。以后沒有其他錯誤的莫名情況,可以試試這個切換一下。
3. 20201027更新
發現按照上面的處理完之后,還是啟動是失敗,於是繼續探索。
發現每次失敗之后,idea 的 event Log
里都會有 Failed to retrieve application JMX service URL,
查看springboot 的運行configuration之后發現了如下選項被選中:
把他取消之后,event Log
的提示沒有了,系統也可以正常啟動。這解決了我大部分的問題。