問題描述:在這次的netty調(diào)試過程中张症,由于Mac本機安裝的是JDK11勋桶,導(dǎo)致了在調(diào)試的過程總無法引入 unsafe 類庫振诬,調(diào)試工作無法正常進(jìn)行露乏。
問題的解決過程:第一波操作,一頓google 網(wǎng)上有人說將報錯的 Modules 標(biāo)記為Sources笛园,照做了隘击,導(dǎo)致的結(jié)果是問題沒有得到解決,還了一個新的錯誤Cannot compile Groovy files: no Groovy library is defined for module 'xx'研铆。
額到這里更加懵逼了埋同,然后又是一頓搜索。找到的方法是將idea里面的!?*.groovy 去掉棵红,然后又是一頓操作凶赁,結(jié)果是又報了一個錯誤(Groovyc: Internal groovyc error: code 1)
到這里真的有點其人啊!然后又開始新一輪的搜索 虱肄,然后沒有然后了解決不了V掳濉!咏窿!委屈臉斟或。。翰灾。缕粹。。纸淮。
然后去netty的github上看了看平斩,發(fā)現(xiàn)有這么一個說法:Usage with JDK 9Netty can be used in modular JDK9 applications as a collection of automatic modules.The module names follow the reverse-DNS style, and are derived from subproject names rather than root packages due to historical reasons.They are listed below:
?哎,不過由于英文水平太差還有這方面沒有經(jīng)驗咽块,實在是看不懂了绘面。
?無奈最后一招,換成JDK8侈沪,結(jié)果一點問題也沒有揭璃。
總結(jié) :感覺還是知識面太窄,這次的問題雖然解決了亭罪,不過造成這次問題的直接原因沒有找出來瘦馍,算是曲線救國吧。
?不過有一個意外的收獲应役,那就是Mac 可以安裝不同版本的JDK而且可以任意切換情组,限于篇幅就不贅述了,簡單說一下:
? ? ? /*JDK11的安裝目錄*/
? ? ? JAVA_11_HOME="/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home"
? ? ? /*JDK的安裝目錄*/
? ? ? JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home"
? ? ? /*默認(rèn)的JAVA_HOME用jdk8*/
? ? ? export JAVA_HOME=$JAVA_8_HOME
? ? ? /*配置PATH*/
? ? ? PATH="$JAVA_HOME/bin:$PATH"
? ? ? /*配置CLASSPATH*/
? ? ? CLASSPATH="$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"
? ? ? export PATH
? ? ? export CLASSPATH
? ? ? /*定義控制臺可以輸入的 jdk8命令*/
? ? ? alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
? ? ? /*定義控制臺可以輸入jdk11 命令*/
? ? ? alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
?這樣配置以后箩祥,只需要在控制臺輸入jdk8 或者 jdk11 就能進(jìn)行相應(yīng)版本的切換院崇。不過這里有個問題需要注意一下,可能是用戶權(quán)限的問題袍祖,每次執(zhí)行完 jdk8 或者jdk11 以后需要再執(zhí)行一次 source ~/.bash_profile底瓣。
簡書處女作,有點簡陋蕉陋,愿意看的同學(xué)可以瞅瞅捐凭。這個問題我后序還會跟進(jìn),另外凳鬓,準(zhǔn)備分享一些調(diào)試netty源碼的心得柑营,希望同學(xué)們能多多執(zhí)教。