IDEA進(jìn)程已結(jié)束,退出代碼-1073741819 (0xC0000005)的bug
由于昨天要寫(xiě)的文章沒(méi)有寫(xiě)完,于是今天早上我四點(diǎn)半就“自然醒”了,心里面有事,睡覺(jué)也不安穩(wěn)。洗漱完畢后,我打開(kāi)電腦,正襟危坐,擺出一副要干架的態(tài)勢(shì),不能再拖了。
要寫(xiě)的文章中涉及到一串代碼,關(guān)于 Undertow 的一個(gè)入門(mén)示例,貼出來(lái)大家看一下。
public class UndertowTest { public static void main(final String[] args) { Undertow server = Undertow.builder() .addHttpListener(8080, "localhost") .setHandler(new HttpHandler() { @Override public 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(紅帽子)公司開(kāi)發(fā)的一款基于 NIO 的高性能 Web 服務(wù)器軟件,不需要單獨(dú)安裝軟件,只需要幾行代碼就可以在 Java 應(yīng)用程序中啟動(dòng)一個(gè) Web 服務(wù),就像上面那段代碼。
前提條件是你已經(jīng)在 pom.xml 文件中引入了 Undertow 的依賴。
<dependency> <groupId>io.undertow</groupId> <artifactId>undertow-core</artifactId> <version>2.0.28.Final</version> </dependency>
沒(méi)想到,代碼在 IDEA 中運(yùn)行后,竟然非正常退出了!
沒(méi)有任何錯(cuò)誤提示,真的是郁悶。主機(jī)名 localhost 沒(méi)有問(wèn)題,端口 8080 也沒(méi)有被占用,但 main 方法在沒(méi)有任何外力的因素下直接結(jié)束了。在瀏覽器地址欄中輸入 http://localhost:8080
自然也無(wú)法顯示“Hello World”。
回看 Run 面板中的輸出信息,唯一讓我感到疑惑的就是下面這行:
進(jìn)程已結(jié)束,退出代碼-1073741819 (0xC0000005)
正常來(lái)說(shuō),程序執(zhí)行的輸出結(jié)果如下所示:
進(jìn)程已結(jié)束,退出代碼0
退出代碼是 0,表示程序正常結(jié)束;退出代碼是 1073741819,它代表什么意思呢?
肯定是非正常唄。我第一時(shí)間想到的原因是,會(huì)不會(huì)是我代碼寫(xiě)錯(cuò)了?于是查看了 Undertow 的官網(wǎng),一個(gè)單詞一個(gè)單詞的檢查,甚至上了 beyond compare 進(jìn)行比較,也沒(méi)有找到任何可疑之處。
折騰得夠嗆,于是不得不上了谷歌大法:
換了各種關(guān)鍵詞,查閱了各種文章,沒(méi)有找到可行的解決辦法。谷歌無(wú)果,我想那就試試某度吧,結(jié)果搜到了游戲,天地良心啊。
搜索引擎靠不住,那就只能靠自己了。于是我寫(xiě)下了這段代碼:
public class TestClose { public static void main(String[] args) { try { Thread.sleep(10000000); } catch (InterruptedException e) { e.printStackTrace(); } } }
運(yùn)行結(jié)果大吃一驚。我揉了好幾次眼睛,甚至上了倍清亮眼藥水,結(jié)果也是非正常退出,錯(cuò)誤代碼和之前的 Undertow 一致。
搞什么嘛,這可是 Thread.sleep(10000000)
休眠大法啊,也能在一秒內(nèi)結(jié)束,那一定不是 Undertow 的代碼示例寫(xiě)錯(cuò)了,而是 IDEA 在作妖。
事到如今,我想起了被打入冷宮的 Eclipse。同樣的代碼,進(jìn)程沒(méi)有立即結(jié)束掉。
Undertow 的代碼示例也沒(méi)有問(wèn)題,程序沒(méi)有立即結(jié)束。
在瀏覽器中輸入 http://localhost:8080
也能正常訪問(wèn)。
對(duì)比之后,問(wèn)題就很確定了,出在 IDEA 身上,一定是它哪根神經(jīng)錯(cuò)亂了。于是換了一下谷歌搜索的關(guān)鍵詞,結(jié)果如下所示。
果然也有同行遇到了類(lèi)似的問(wèn)題,但文章中提到的原因竟然是金山詞霸的劃詞翻譯,這有點(diǎn)太扯了吧?
雖然有點(diǎn)扯,但的確值得試一試,畢竟山窮水盡了啊,況且我的電腦上真的安裝了金山詞霸,并且是打開(kāi)狀態(tài)。
那就退出試試唄,結(jié)果。。。。。。。。。。真的有用啊。
這次,進(jìn)程沒(méi)有主動(dòng)結(jié)束,這是什么神奇的操作???人生第一次開(kāi)始懷疑科學(xué)了!
既然和金山詞霸有關(guān)系,那么我就腦洞打開(kāi)了,是不是因?yàn)槲已b了漢化插件的關(guān)系?于是我把 IDEA 的漢化插件禁用,并且在重啟之前打開(kāi)了金山詞霸。
結(jié)果證明沒(méi)關(guān)系,進(jìn)程主動(dòng)結(jié)束了。
于是只好再次退出金山詞霸。沒(méi)想到,當(dāng)我點(diǎn)擊 Run 的小圖標(biāo)再次運(yùn)行程序時(shí),IDEA 竟然閃退了??磥?lái)它們之間的確有著不可告人的秘密,具體原因未知。
不管怎么說(shuō),這個(gè)莫名其妙的 bug 是解決了,有必要總結(jié)一波經(jīng)驗(yàn)心得了,希望能夠給小伙伴們?cè)陂_(kāi)發(fā)中一些啟發(fā)。因?yàn)樽鳛槌绦騿T,面對(duì)不會(huì)說(shuō)話的計(jì)算機(jī),有時(shí)候,真的會(huì)遇到一些難以名狀的錯(cuò)誤,把我們折騰得夠嗆。
經(jīng)驗(yàn)一:保持冷靜,切勿暴躁,心態(tài)失衡時(shí)容易捶鼠標(biāo),捶鍵盤(pán),捶壞了,還得買(mǎi)新的。
經(jīng)驗(yàn)二:先從自身代碼找原因,復(fù)制粘貼有時(shí)候也會(huì)出現(xiàn)偏差,這時(shí)候,最好就和源頭對(duì)比一下。如果肉眼發(fā)現(xiàn)不了,上比較工具,靠譜。
經(jīng)驗(yàn)三:?jiǎn)柟雀?,不要?wèn)某度。這年頭,經(jīng)常聽(tīng)到一些小伙伴們抱怨說(shuō),公司不允許上網(wǎng),遇到問(wèn)題時(shí)真的無(wú)從下手,我只能說(shuō)這樣的公司真的是閉關(guān)鎖國(guó)啊。
經(jīng)驗(yàn)四:換個(gè)環(huán)境試一試。同樣的代碼,環(huán)境不同,運(yùn)行后的解決真有可能不同。IDEA 中出錯(cuò),放 Eclipse 中試試;Windows 下出錯(cuò),放 Linux 下試試;自己的環(huán)境有問(wèn)題,放同事的環(huán)境下試試。
經(jīng)驗(yàn)五:搜索的時(shí)候換一下關(guān)鍵詞,真的是“柳暗花明又一村”啊。
經(jīng)驗(yàn)六:重復(fù)以上。
到此這篇關(guān)于IDEA進(jìn)程已結(jié)束,退出代碼-1073741819 (0xC0000005)的bug的文章就介紹到這了,更多相關(guān)IDEA 進(jìn)程已結(jié)束退出代碼-1073741819 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java web將數(shù)據(jù)導(dǎo)出為pdf格式文件代碼片段
這篇文章主要為大家詳細(xì)介紹了java web將數(shù)據(jù)導(dǎo)出為pdf格式文件代碼片段,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼
這篇文章主要介紹了SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Springboot詳解RocketMQ實(shí)現(xiàn)廣播消息流程
RocketMQ作為一款純java、分布式、隊(duì)列模型的開(kāi)源消息中間件,支持事務(wù)消息、順序消息、批量消息、定時(shí)消息、消息回溯等,本篇我們了解如何實(shí)現(xiàn)廣播消息2022-06-06使用session實(shí)現(xiàn)簡(jiǎn)易購(gòu)物車(chē)功能
這篇文章主要為大家詳細(xì)介紹了使用session實(shí)現(xiàn)簡(jiǎn)易購(gòu)物車(chē)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ)
這篇文章主要介紹了Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ),為一些Java開(kāi)發(fā)CS類(lèi)型應(yīng)用的基礎(chǔ)概念知識(shí),需要的朋友可以參考下2015-10-10SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot集成QQ第三方登陸的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11springboot實(shí)現(xiàn)微信掃碼登錄的項(xiàng)目實(shí)踐
微信掃碼功能是目前第三方登錄常見(jiàn)功能,前不久有個(gè)項(xiàng)目剛好用上,本文主要介紹了springboot實(shí)現(xiàn)微信掃碼登錄的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10