日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WSL与idea集成攻略

發(fā)布時(shí)間:2024/1/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WSL与idea集成攻略 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

運(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é)

  • 根據(jù)官方教程將WSL2與idea集成的時(shí)候,firewall configuration這一小節(jié)是必須做的部分
  • 目前這個(gè)win11版本有問題,這里提到Windows 11 22H2的情況下防火墻要關(guān)掉實(shí)時(shí)保護(hù)。否則會(huì)影響除了windows官方提供的IDE以外的所有IDE的indexing過程,包括但不限于卡在validating SDK
  • 反思

    下次配環(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 Ubuntu-18.04 does not have configured Maven

    在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ò):

    Abnormal build process termination: C:\Windows\system32\wsl.exe --distribution Ubuntu-18.04 --exec /bin/sh -c "cd /home/zqxu/.cache/JetBrains/IntelliJIdea2022.3/compile-server && /usr/lib/jvm/jdk-17/bin/java -Xmx700m -Djava.awt.headless=true '-Djna.boot.library ...這里還有一堆日志 Cannot establish network connection from WSL to Windows host (could be blocked by firewall). More details: https://jb.gg/wsl-firewall

    草,那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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。