IDEA 惊天 bug:进程已结束,退出代码 1073741819
來源 |?沉默王二
責編 | Carol
頭圖 | CSDN 下載自視覺中國
今天要寫的文章中涉及到一串代碼,關于 Undertow 的一個入門示例,貼出來大家看一下。
public?class?UndertowTest?{public?static?void?main(final?String[]?args)?{Undertow?server?=?Undertow.builder().addHttpListener(8080,?"localhost").setHandler(new?HttpHandler()?{@Overridepublic?void?handleRequest(final?HttpServerExchange?exchange)?throws?Exception?{exchange.getResponseHeaders().put(Headers.CONTENT_TYPE,?"text/plain");exchange.getResponseSender().send("Hello?World");}}).build();server.start();} }Undertow 是大名鼎鼎的 Red Hat(紅帽子)公司開發(fā)的一款基于 NIO 的高性能 Web 服務器軟件,不需要單獨安裝軟件,只需要幾行代碼就可以在 Java 應用程序中啟動一個 Web 服務,就像上面那段代碼。
前提條件是你已經在 pom.xml 文件中引入了 Undertow 的依賴。
<dependency><groupId>io.undertow</groupId><artifactId>undertow-core</artifactId><version>2.0.28.Final</version> </dependency>沒想到,代碼在 IDEA 中運行后,竟然非正常退出了!
沒有任何錯誤提示,真的是郁悶。主機名 localhost 沒有問題,端口 8080 也沒有被占用,但 main 方法在沒有任何外力的因素下直接結束了。在瀏覽器地址欄中輸入?http://localhost:8080?自然也無法顯示“Hello World”。
回看 Run 面板中的輸出信息,唯一讓我感到疑惑的就是下面這行:
進程已結束,退出代碼-1073741819 (0xC0000005)
正常來說,程序執(zhí)行的輸出結果如下所示:
進程已結束,退出代碼0
退出代碼是 0,表示程序正常結束;退出代碼是 1073741819,它代表什么意思呢?
肯定是非正常唄。我第一時間想到的原因是,會不會是我代碼寫錯了?于是查看了 Undertow 的官網,一個單詞一個單詞的檢查,甚至上了 beyond compare 進行比較,也沒有找到任何可疑之處。
折騰得夠嗆,于是不得不上了谷歌大法:
換了各種關鍵詞,查閱了各種文章,沒有找到可行的解決辦法。谷歌無果,我想那就試試某度吧,結果搜到了游戲,天地良心啊。
搜索引擎靠不住,那就只能靠自己了。于是我寫下了這段代碼:
public?class?TestClose?{public?static?void?main(String[]?args)?{try?{Thread.sleep(10000000);}?catch?(InterruptedException?e)?{e.printStackTrace();}} }運行結果大吃一驚。我揉了好幾次眼睛,甚至上了倍清亮眼藥水,結果也是非正常退出,錯誤代碼和之前的 Undertow 一致。
搞什么嘛,這可是?Thread.sleep(10000000)?休眠大法啊,也能在一秒內結束,那一定不是 Undertow 的代碼示例寫錯了,而是 IDEA 在作妖。
事到如今,我想起了被打入冷宮的 Eclipse。同樣的代碼,進程沒有立即結束掉。
Undertow 的代碼示例也沒有問題,程序沒有立即結束。
在瀏覽器中輸入?http://localhost:8080?也能正常訪問。
對比之后,問題就很確定了,出在 IDEA 身上,一定是它哪根神經錯亂了。于是換了一下谷歌搜索的關鍵詞,結果如下所示。
果然也有同行遇到了類似的問題,但文章中提到的原因竟然是金山詞霸的劃詞翻譯,這有點太扯了吧?
雖然有點扯,但的確值得試一試,畢竟山窮水盡了啊,況且我的電腦上真的安裝了金山詞霸,并且是打開狀態(tài)。
那就退出試試唄,結果。。。。。。。。。。真的有用啊。
這次,進程沒有主動結束,這是什么神奇的操作啊?人生第一次開始懷疑科學了!
既然和金山詞霸有關系,那么我就腦洞打開了,是不是因為我裝了漢化插件的關系?于是我把 IDEA 的漢化插件禁用,并且在重啟之前打開了金山詞霸。
結果證明沒關系,進程主動結束了。
于是只好再次退出金山詞霸。沒想到,當我點擊 Run 的小圖標再次運行程序時,IDEA 竟然閃退了。看來它們之間的確有著不可告人的秘密,具體原因未知。
不管怎么說,這個莫名其妙的 bug 是解決了,有必要總結一波經驗心得了,希望能夠給小伙伴們在開發(fā)中一些啟發(fā)。因為作為程序員,面對不會說話的計算機,有時候,真的會遇到一些難以名狀的錯誤,把我們折騰得夠嗆。
經驗一:保持冷靜,切勿暴躁,心態(tài)失衡時容易捶鼠標,捶鍵盤,捶壞了,還得買新的。
經驗二:先從自身代碼找原因,復制粘貼有時候也會出現偏差,這時候,最好就和源頭對比一下。如果肉眼發(fā)現不了,上比較工具,靠譜。
經驗三:問谷歌,不要問某度。這年頭,經常聽到一些小伙伴們抱怨說,公司不允許上網,遇到問題時真的無從下手,我只能說這樣的公司真的是閉關鎖國啊。
經驗四:換個環(huán)境試一試。同樣的代碼,環(huán)境不同,運行后的解決真有可能不同。IDEA 中出錯,放 Eclipse 中試試;Windows 下出錯,放 Linux 下試試;自己的環(huán)境有問題,放同事的環(huán)境下試試。
經驗五:搜索的時候換一下關鍵詞,真的是“柳暗花明又一村”啊。
經驗六:重復以上。
今日福利
遇見大咖
由 CSDN 全新專為技術人打造的高端對話欄目《大咖來了》來啦!
CSDN 創(chuàng)始人&董事長、極客幫創(chuàng)投創(chuàng)始合伙人蔣濤攜手京東集團技術副總裁、IEEE Fellow、京東人工智能研究院常務副院長、深度學習及語音和語言實驗室負責人何曉冬,來也科技 CTO 胡一川,共話中國 AI 應用元年來了,開發(fā)者及企業(yè)的路徑及發(fā)展方向!
戳鏈接或點擊閱讀原文,直達報名:https://t.csdnimg.cn/uZfQ
總結
以上是生活随笔為你收集整理的IDEA 惊天 bug:进程已结束,退出代码 1073741819的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加速布局无服务器生态,腾讯云与Serve
- 下一篇: 8 种架构设计模式优缺点大曝光 | 原力