WSL与idea集成攻略
概述
運(yùn)行環(huán)境
WSL2
版本 Windows 11 專業(yè)版
版本 22H2
安裝日期 ?2022/?5/?12
操作系統(tǒng)版本 22624.1680
體驗(yàn) Windows Feature Experience Pack 1000.22641.1000.0
總結(jié)
反思
下次配環(huán)境看教程的時(shí)候務(wù)必至少也要大致瀏覽一下每個(gè)小節(jié)的標(biāo)題和大致內(nèi)容!我在看官方教程的時(shí)候沒注意到firewall configuration這一節(jié)開頭說的You need to perform the following steps to ensure that the building of a project works properly.估計(jì)就是少了這個(gè)小節(jié)導(dǎo)致我做了不少諸如更換JDK之類的無用功
我具體所做的所有操作
(可能有個(gè)別操作沒記錄下來,不過大部分肯定是記錄下來了)
根據(jù)官方教程,idea新建項(xiàng)目的時(shí)候選擇使用WSL里的SDK,但是在運(yùn)行helloworld代碼的時(shí)候出現(xiàn)了這個(gè)報(bào)錯(cuò):
在WSL里執(zhí)行mvn -v發(fā)現(xiàn)顯示的是我windows下的maven,懶得查怎么讓W(xué)SL跟windows公用maven了,直接根據(jù)官網(wǎng)在WSL里配置一個(gè)maven,配置path的命令如下:
export PATH=/home/zqxu/tools/apache-maven-3.9.1/bin/:$PATH # 記得改成自己的maven bin的路徑,然后把這個(gè)命令放到bashrc并source一下配置好以后mvn -v的輸出是這樣:
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8) Maven home: /home/zqxu/tools/apache-maven-3.9.1 Java version: 1.8.0_362, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "5.10.43.3-microsoft-standard-wsl2", arch: "amd64", family: "unix"再次運(yùn)行helloworld代碼,但是此時(shí)出現(xiàn)新的報(bào)錯(cuò):
Maven resources compiler: Maven project configuration required for module 'HelloWorld' isn't available. Compilation of Maven projects is supported only if external build is started from an IDE.然后想起來idea的setting里我用的還是windows的maven而沒有設(shè)置成WSL的maven,所以去設(shè)置了一下,并且根據(jù)這個(gè)教程配置了maven。然后發(fā)現(xiàn)idea卡在reading maven projects10分鐘了也沒有完成的意思。然后新建了一個(gè)基于intellij構(gòu)建的項(xiàng)目運(yùn)行helloworld,發(fā)現(xiàn)居然報(bào)錯(cuò)
java: Compilation failed: internal java compiler error然后看了一下win下的java_home的路徑:C:\Program Files\Java\jdk-17.0.5發(fā)現(xiàn)這個(gè)文件夾下還有一些我的WSL的bashrc的JAVA_HOME里沒有的文件夾,比如legal,jmods等,然后發(fā)現(xiàn)我的JAVA_HOME的值是這樣
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64,我就改成了/usr/lib/jvm/jdk-17并source一下使其生效,但是idea里運(yùn)行代碼又出現(xiàn)如下報(bào)錯(cuò):
草,那JAVA_HOME還是改回去吧。而且直接在WSL里用javac命令測試了一下是我的WSL里的java1.8可以正常編譯java代碼的,估計(jì)是idea里哪里沒有配起來。但是這個(gè)問題還有有待解決:
java: Compilation failed: internal java compiler error根據(jù)這里修改了 Project bytecode version,取消了Use compiler from module target JDK when possible,但是編譯的時(shí)候就卡在parsing java的階段動(dòng)不了了,麻了,于是決定換個(gè)JDK,根據(jù)這里安裝了JAVA17,然后忘記做了什么配置,運(yùn)行代碼的時(shí)候卡在preparing wsl build environment這個(gè)階段,然后根據(jù)這里知道原來我Windows 11 22H2的情況下防火墻要關(guān)掉實(shí)時(shí)保護(hù)。于是關(guān)掉了,但是又產(chǎn)生跟之前一樣的報(bào)錯(cuò):
...省略了一些Log Cannot establish network connection from WSL to Windows host (could be blocked by firewall). More details: https://jb.gg/wsl-firewall然后發(fā)現(xiàn)根據(jù)官方教程看來還要進(jìn)行firewall configuration,配完以后終于能helloworld了
總結(jié)
以上是生活随笔為你收集整理的WSL与idea集成攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dev C++开发lib和dll
- 下一篇: 考研英语-好词好句