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