Java程序运行报错怎么办?常见问题排查与解决方法
锛堟枃绔犲紑澶达級
"鍝庡鍛€锛佸垰鍐欑殑Java浠g爜鍙堝弻鍙掑彆鎶ラ敊浜嗭紵鎺у埗鍙伴绾㈠瓧姣旇繃骞磋创鏄ヨ仈杩樼儹闂规槸鍚э紵鍒€ョ潃鐮搁敭鐩橈紒浠婂ぉ鍜卞氨鍍忚€佷腑鍖绘妸鑴夛紝鎶奐ava鎶ラ敊鍒嗘垚'椋庡瘨婀跨儹'鍥涘ぇ绫伙紝鎵嬫妸鎵嬫暀浣犲綋鑷繁鐨勭▼搴忛儙涓紒"
馃毃 鐥囩姸涓€锛?鎵句笉鍒扮被"缁煎悎鐥囷紙ClassNotFoundException锛?/h2>
缁忓吀鐥呮锛?/h3>
鎺у埗鍙版彁绀猴細java.lang.ClassNotFoundException: com.example.Main
鎶婅剦璇婃柇锛?/h3>
- 鈥?strong>鈥嬬被鏂囦欢澶辫釜鈥?/strong>鈥嬶細灏卞儚鍘婚鍫傚彂鐜版病甯﹂キ鍗?/li>
- 鈥?strong>鈥嬪寘璺緞閿欎贡鈥?/strong>鈥嬶細鎶婂揩閫掑瘎鍒颁簡闅斿灏忓尯蹇€掓煖
- 鈥?strong>鈥嬬幆澧冨彉閲忔娊椋庘€?/strong>鈥嬶細鎵嬫満寮€浜嗛琛屾ā寮忚繕鎬病淇″彿
鏁戝懡鑽柟锛?/h3>
- 妫€鏌ョ紪璇戝悗鐨?class鏂囦欢鏄惁瀛樺湪 鈫?閲嶆柊
javac
缂栬瘧
- 纭鍖呭0鏄庡拰鏂囦欢璺緞涓€鑷?鈫?灏卞儚鏍稿鏀朵欢鍦板潃
- 鍛戒护琛岃繍琛屾椂鍔?code>-classpath鍙傛暟 鈫?鐩稿綋浜庣粰绋嬪簭鍙戝鑸畾浣?/li>
bash澶嶅埗java -classpath "D:\mycode\bin" com.example.Main
馃挜 鐥囩姸浜岋細绌烘寚閽堟毚鍑伙紙NullPointerException锛?/h2>
缁忓吀鐥呮锛?/h3>
- 妫€鏌ョ紪璇戝悗鐨?class鏂囦欢鏄惁瀛樺湪 鈫?閲嶆柊
javac
缂栬瘧 - 纭鍖呭0鏄庡拰鏂囦欢璺緞涓€鑷?鈫?灏卞儚鏍稿鏀朵欢鍦板潃
- 鍛戒护琛岃繍琛屾椂鍔?code>-classpath鍙傛暟 鈫?鐩稿綋浜庣粰绋嬪簭鍙戝鑸畾浣?/li>
bash澶嶅埗java -classpath "D:\mycode\bin" com.example.Main
馃挜 鐥囩姸浜岋細绌烘寚閽堟毚鍑伙紙NullPointerException锛?/h2>
缁忓吀鐥呮锛?/h3>
Exception in thread "main" java.lang.NullPointerException
鎶婅剦璇婃柇锛?/h3>
- 鈥?strong>鈥嬪璞℃病鍒濆鍖栧氨璋冪敤鏂规硶鈥?/strong>鈥嬶細璁╃┖姘斾汉琛ㄦ紨鏉傛妧
- 鈥?strong>鈥嬫柟娉曡繑鍥炰簡null娌℃鏌モ€?/strong>鈥嬶細鎵撳紑绌虹ぜ鐩掕繕鏈熷緟鎯婂枩
闃叉毚鎸囧崡锛?/h3>
- 鍦ㄦ墍鏈夊彲鑳借繑鍥瀗ull鐨勬柟娉曞悗鍔犲垽绌哄鐞嗭細
java澶嶅埗if (user != null) {
System.out.println(user.getName());
}
- 浣跨敤Java 8鐨凮ptional绫?鈫?缁欏彉閲忓涓婇槻鎾炴潯
- 鈥?strong>鈥嬮噸瑕佷範鎯€?/strong>鈥嬶細鏂板缓瀵硅薄鍚庣珛鍗冲垵濮嬪寲锛屽氨鍍忕粰鏂版墜鏈鸿创鑶?/li>
馃攲 鐥囩姸涓夛細鐜閰嶇疆鐜勫闂
缁忓吀涓夎繛鍑伙細
- "javac涓嶆槸鍐呴儴鍛戒护"
- "JAVA_HOME鏈纭厤缃?
- "涓嶆敮鎸佺殑class鐗堟湰"
璁惧妫€淇墜鍐岋細
- 鍦ㄦ墍鏈夊彲鑳借繑鍥瀗ull鐨勬柟娉曞悗鍔犲垽绌哄鐞嗭細
java澶嶅埗if (user != null) { System.out.println(user.getName()); }
- 浣跨敤Java 8鐨凮ptional绫?鈫?缁欏彉閲忓涓婇槻鎾炴潯
- 鈥?strong>鈥嬮噸瑕佷範鎯€?/strong>鈥嬶細鏂板缓瀵硅薄鍚庣珛鍗冲垵濮嬪寲锛屽氨鍍忕粰鏂版墜鏈鸿创鑶?/li>
馃攲 鐥囩姸涓夛細鐜閰嶇疆鐜勫闂
缁忓吀涓夎繛鍑伙細
- "javac涓嶆槸鍐呴儴鍛戒护"
- "JAVA_HOME鏈纭厤缃?
- "涓嶆敮鎸佺殑class鐗堟湰"
璁惧妫€淇墜鍐岋細
鐥囩姸 | 鑷姝ラ | 宸ュ叿鎺ㄨ崘 |
---|---|---|
鍛戒护鎵句笉鍒?/td> | 妫€鏌ath鐜鍙橀噺鏄惁鍖呭惈JDK鐨刡in | Everything鎼滅储java.exe |
鐗堟湰鍐茬獊 | 杩愯java -version 涓変欢濂楁瘮瀵?/td> | JDK鐗堟湰鍒囨崲鑴氭湰 |
鐜勫鎶ラ敊 | 閲嶅惎IDE+娓呯悊缂撳瓨 | 绋嬪簭鍛樹笓鐢ㄩ噸鍚ぇ娉?/td> |
锛堟媿澶ц吙锛夎娉粡楠岋細閬囧埌杩囨槑鏄庣幆澧冨彉閲忔纭紝浣嗗繀椤荤敤绠$悊鍛樻潈闄愯繍琛孋MD鎵嶆甯革紝璺熸煇浜涚數姊繀椤诲埛鍗℃墠鑳芥寜妤煎眰涓€鏍烽瓟骞伙紒
馃摉 鐥囩姸鍥涳細璇硶閿欎贡鐥囧€欑兢
缁忓吀缈昏溅鐜板満锛?/h3>
java澶嶅埗// 婕忓啓鍒嗗彿
System.out.println("Hello")
// 涓枃寮曞彿
System.out.println锛?span>"閿欒绀鸿寖"锛?
// 澶у皬鍐欐贩涔?/span>
string name = "寮犱笁";
璇硶鐭鍣細
- 瀹夎IDE鐨勬嫾鍐欐鏌ユ彃浠?鈫?鐩稿綋浜庣粰浠g爜鎴寸墮濂?/li>
- 鍏绘垚鑲岃倝璁板繂锛?
- 鑻辨枃绗﹀彿杈撳叆娉曢攣瀹?/li>
- 绫诲悕棣栧瓧姣嶅ぇ鍐?/li>
- 姣忚缁撴潫鐬勪竴鐪煎垎鍙?/li>
// 婕忓啓鍒嗗彿
System.out.println("Hello")
// 涓枃寮曞彿
System.out.println锛?span>"閿欒绀鸿寖"锛?
// 澶у皬鍐欐贩涔?/span>
string name = "寮犱笁";
- 鑻辨枃绗﹀彿杈撳叆娉曢攣瀹?/li>
- 绫诲悕棣栧瓧姣嶅ぇ鍐?/li>
- 姣忚缁撴潫鐬勪竴鐪煎垎鍙?/li>
锛堢獊鐒舵兂鍒帮級鏈変釜鍐风煡璇嗭細90%鐨凪issing return statement閿欒锛岄兘鏄洜涓篿f-else鍒嗘敮娌¤鐩栨墍鏈夊彲鑳芥€э紒
馃 鐙鐢熷瓨鎸囧崡锛堟潵鑷鎶ラ敊铏愬摥3骞寸殑绋嬪簭鍛橈級
- 鈥?strong>鈥嬫帶鍒跺彴闃呰鏈€?/strong>鈥嬶細浠庝笅寰€涓婄湅鎶ラ敊淇℃伅锛屽氨鍍忓€掔潃鍚冪敇钄楁洿鐢?/li>
- 鈥?strong>鈥嬫渶灏忓鐜版硶鈥?/strong>鈥嬶細鏂板缓绌虹櫧绫婚€愭娣诲姞浠g爜锛岄攣瀹氶棶棰樿竟鐣?/li>
- 鈥?strong>鈥嬮敊璇棩蹇楃鐞嗏€?/strong>鈥嬶細鐢ㄨ浜嬫湰璁板綍鎶ラ敊鍜岃В鍐虫柟妗堬紝鍋氭垚鑷繁鐨勩€婄▼搴忔湰鑽夌翰鐩€?/li>
瀹炴祴鏁版嵁锛氱敤杩欎笁鎷涘悗锛屾垜澶勭悊鎶ラ敊鐨勬椂闂翠粠骞冲潎45鍒嗛挓缂╃煭鍒?鍒嗛挓锛岀浉褰撲簬灏戞帓涓ゆ濂惰尪搴楃殑闃燂紒
馃挕 闃查敊榛戠鎶€
- 鍦↖DE璁剧疆閲屽紑鍚€?strong>鈥嬭嚜鍔ㄤ繚瀛樷€?/strong>鈥嬪拰鈥?strong>鈥嬪疄鏃剁紪璇戔€?/strong>鈥?/li>
- 浣跨敤SonarLint鎻掍欢鎻愬墠鍙戠幇闅愭偅 鈫?浠g爜鐣岀殑閲戝睘鎺㈡祴鍣?/li>
- 瀹氭湡杩愯
mvn clean install
娓呯悊闄堟棫缂栬瘧鏂囦欢
锛堟崅鑴革級涓婃蹇樹簡clean锛岀洴鐫€鎶ラ敊鏌ヤ簡淇╁皬鏃讹紝缁撴灉鍙戠幇鏄棫class鏂囦欢鍦ㄤ綔濡栵紝杩欐暀璁瘮鎴戝璁版垜灏忔椂鍊欏翱搴婃鏁拌寰楄繕娓呮锛?/p>
鏈€鍚庤鍙ュぇ瀹炶瘽锛?/h2>
鎶ラ敊灏卞儚绋嬪簭鍦ㄨ窡浣犺璇濓紝鍒氬紑濮嬪惉鐫€鍍忓鏄熻锛屼絾鍚浜嗗氨鑳界炕璇戞垚锛?鍏勫紵锛岃繖鍎挎湁涓潙锛屽揩濉笂锛?璁颁綇锛屾瘡涓姤閿欓兘鏄崌绾х粡楠屽寘銆傛垜鍒扮幇鍦ㄧ數鑴戦噷杩樺瓨鐫€褰撳勾绗竴涓狽ullPointerException鐨勬埅鍥撅紝鐜板湪鐪嬬潃閮戒箰鈥斺€旇皝杩樻病涓潚娑╃殑鑿滈笩鏃舵湡鍛紵
本文由嘻道妙招独家原创,未经允许,严禁转载