目錄
一、遇到的問題
二、使用環(huán)境
三、問題分析
四、解決方案
1、解決方式一
2、解決方式二
一、遇到的問題
上周五,我要改造一個之前從未接觸過的 SpringBoot 項目。我用 git 拉下代碼后,試圖使用 Idea 運行它。但是,Idea 在運行時拋出了一個問題:Error running 'Application': Command line is too long. Shorten command line for Application or also for Application default configuration?
該問題一般會在新項目或者從未接觸過的項目上出現(xiàn)。雖然網(wǎng)上有很多的解決方案,但很多解決方案都已經(jīng)過時。并且這些方案也沒有講清問題的原因,所以我打算先用一個簡單的 SpringBoot 項目模擬出該問題,再解決它,這樣就很容易分析該問題。我覺得有必要寫一篇文章記錄這個過程,也可以幫助到遇到該問題的開發(fā)者。
二、使用環(huán)境
我使用的操作系統(tǒng)是 Windows, Idea 的版本是:IntelliJ IDEA 2020.3.1 (Community Edition)
如果你遇到了該問題,先看一下你使用的 Idea 是多少版本的。2017.3 及以后的版本都可以使用該方法解決問題,如果你是 2017.3 之前的版本,我建議你升級 Idea ,盡量使用新版本的 Idea 。
三、問題分析
我先問一個問題,在 Idea 中點擊運行按鈕后,Idea 會調(diào)用哪些命令?
當(dāng)我們點擊運行程序的按鈕,Idea 會先調(diào)用 javac 命令編譯程序,再調(diào)用 java 命令運行程序。
現(xiàn)在,分析一下錯誤:Error running 'Application': Command line is too long 。這個錯誤說的很明確,運行程序時報錯,命令行太長了,而運行程序的命令就是上面說的 java 命令。最后的結(jié)論是,運行 java 的命令行太長。一般來說,操作系統(tǒng)有命令行長度限制,超過限制的長度就會執(zhí)行失敗。
下面來證明我的結(jié)論,在 Idea 中運行程序,控制臺中打印的第一行日志如下圖中紅框所示:
該行日志就是使用 java 命令運行程序,點開后可以看到后面跟有 -javaagent、classpath 等參數(shù)。如果 classpath 中包含的 jar 包過多,可能導(dǎo)致命令行過長。
四、解決方案
既然知道了是 java 命令行太長,導(dǎo)致運行程序失敗。只要縮短命令行就可以解決該問題,Idea 2017.3 之后的版本提供了縮短命令行的配置。如下有兩種解決方式,方式一和方式二的原理一樣,都是配置縮短命令行。方式一和方式二的區(qū)別在于方式一是按步驟配置,方式二是快速配置。
1、解決方式一
先打開 Run/Debug Configurations 面板。再點擊 Modify options ,選擇 Shorten command line ,再選擇 JAR manifest 或者 classpath file 就可以解決問題。
示意圖如下所示:
2、解決方式二
如果你的 Idea 彈出報錯信息如下圖所示,直接點擊藍(lán)色的 JAR manifest 或者 classpath file 可以快速配置,再次運行程序就不會再報錯了。文章來源:http://www.zghlxwxcb.cn/news/detail-422921.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-422921.html
到了這里,關(guān)于Command line is too long的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!