V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
allyn
V2EX  ›  Java

关于在 wsl 中使用 idea 进行 Java 开发的问题

  •  
  •   allyn · 7 小时 17 分钟前 · 1175 次点击

    由于 ai agent 的缘故,项目不得不迁移到 wsl 内部,但是迁移到 wsl 后问题实在太多了,解决一个又来一个,导致不太有信心使用,有没有好点的解决方案?

    问题 1: 使用 intellij idea 启动 java 程序端口占用问题( jmx ),在 wsl 中没有找到到 jmx 占用的端口,但是又说占用了,不知道什么原因,直接暴力关闭 jmx ,解决办法:关闭 jmx

    问题 2: 在 wsl 中启动本地端口启动 8888 ,localhost 能访问,局域网不能访问,原因是 wsl 防火墙问题,解决办法:使用 powershell 管理员执行命令

    Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
    

    问题 3: 程序终于启动起来了,结果无法使用 java debug 动态更改代码,也无法进入断点,jrebel 也无法使用。 原因可能是:

    java.lang.IllegalAccessException: Class com.intellij.spring.debugger.rt.com.intellij.spring.debugger.rt.SpringBeanDefinitionLoader can not access a member of class org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader$ConfigurationClassBeanDefinition with modifiers "public"
    	at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
    	at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296)
    	at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288)
    	at java.lang.reflect.Method.invoke(Method.java:491)
    	at com.intellij.spring.debugger.rt.com.intellij.spring.debugger.rt.SpringBeanDefinitionLoader.getAnnotationMetadataClassName(SpringBeanDefinitionLoader.java:182)
    	at com.intellij.spring.debugger.rt.com.intellij.spring.debugger.rt.SpringBeanDefinitionLoader.getBeanClassName(SpringBeanDefinitionLoader.java:121)
    	at com.intellij.spring.debugger.rt.com.intellij.spring.debugger.rt.SpringBeanDefinitionLoader.getAllBeanDefinitions(SpringBeanDefinitionLoader.java:40)
    	at org.springframework.context.event.ContextRefreshedEvent.<init>(ContextRefreshedEvent.java:37)
    	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:938)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
    	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
    	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
    	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:338)
    

    这个到目前为止还没有解决。

    综上所述,wsl 开发 java 程序实在是太难了,解决一个又来一个,上面的问题大家有什么解决方法吗?

    25 条回复    2026-04-07 15:06:45 +08:00
    ixiaohei
        1
    ixiaohei  
       7 小时 12 分钟前
    考虑换 mac 呢?我之前也是 java 程序员,8 年前就换 mac 了,换 mac 发现打开了新大门啊。后面就转其他语言后端开发了
    wenning
        2
    wenning  
       7 小时 11 分钟前
    我是直接使用 vmware 启动一个虚拟机来做开发了, idea 直接放到虚拟机里面; 之前用 wsl 的时候发现 linux 下面 java 打包编译性能比 windows 原生高了三倍, 但是 idea 的远程开发体验太差了, 干脆直接启动虚拟机来处理, 正好现在 openclaw 这些处于安全需要也要一个隔离环境
    dcsuibian
        3
    dcsuibian  
       7 小时 1 分钟前   ❤️ 1
    ❯ cat .\.wslconfig
    [wsl2]
    firewall=false
    autoProxy=false
    networkingMode=Mirrored
    [experimental]
    hostAddressLoopback=true
    dcsuibian
        4
    dcsuibian  
       7 小时 0 分钟前
    注意,我用的 wsl 版本是 2.6.3.0 ,以上设置都在 WSL Settings 里有图形化的设置方式
    尤其是你的问题 2 ,就是设置防火墙吧
    bjzhou1990
        5
    bjzhou1990  
       6 小时 59 分钟前
    wsl 本身就是个 hyper-v 虚拟机,为什么不直接在 hyper-v 上运行个 Linux 虚拟机
    cheng6563
        6
    cheng6563  
       6 小时 57 分钟前
    IDEA 设置有个增强调试功能,可以去关掉。
    然后,早日脱离 hyperv ,早日获得新生。
    liu731
        7
    liu731  
    PRO
       6 小时 56 分钟前
    再买块硬盘装 Ubuntu 可能比较好~
    Mogugugugu
        8
    Mogugugugu  
       6 小时 53 分钟前
    wsl 不是开发 java 太难,而是 wsl+idea 开发 java 太难,放弃 idea 一切都顺畅了。
    Gehrman
        9
    Gehrman  
       6 小时 43 分钟前
    可以直接在 WSL 里启动 idea 客户端吧,目前有 WSLg 了。
    之前玩了下,Android Studio 直接装在 WSL 里,启动后像一个 Windows 软件窗口一样。
    当时试了下,成功编译安装了一个 apk 到手机上。
    dandel1on
        10
    dandel1on  
       6 小时 41 分钟前   ❤️ 1
    可以试一下用 wsl 运行 linux 版的 idea
    urfree
        11
    urfree  
       6 小时 31 分钟前
    vscode+wsl+ai 开发什么都可以,ai 时代该抛弃 idea 了
    allyn
        12
    allyn  
    OP
       6 小时 28 分钟前
    @dandel1on 运行了 linux 版本的 idea ,无法正常使用,有个 java 外框,界面卡死。
    orzsome
        13
    orzsome  
       6 小时 12 分钟前
    别用 wsl ,直接 claude code 或者 codex app ,他们 win 支持的还行。wsl 我使用的时候总是访问有问题。你如果使用 wsl ,也不需要安装 linux 版本的 idea 。直接使用原来 win 的。
    gudecatch
        14
    gudecatch  
       6 小时 10 分钟前
    之前一直在 wsl 里面装一个 intellij ,因为 intellij 在 windows 下没法 debug wsl 里面的代码。但是最新的版本已经解决了这个问题,实际使用基本毫无问题。

    你提到的问题我觉得可能更多是 wsl 的网络配置相关的东西
    ic2y
        15
    ic2y  
       5 小时 23 分钟前
    @allyn 你安装一个 gateway ,让 gateway 通过 wsl 去开发,几乎没有 bug
    ic2y
        16
    ic2y  
       5 小时 23 分钟前
    jetbrain gateway
    anivie
        17
    anivie  
       5 小时 19 分钟前
    wsl 没有那么开箱即用,是需要适配的,idea 对 wsl 的适配并不完美,很多 bug ,用起来还不如远程开发。不过貌似 jb 的远程开发更难用就是了……还是换 mac 解君愁吧
    ThisDay
        18
    ThisDay  
       4 小时 26 分钟前
    vscode 系列对 wsl2 适配的非常好,至于 jb ,你说的端口占用跟 debug 卡死问题,我 issue 提了快两年了也没修。
    LowBi
        19
    LowBi  
       4 小时 12 分钟前
    看了此贴 也是打消了使用 wsl 开发 Java 的计划了,Claude code 装 Windows 上用用看先
    hmmmbiubiubiu
        20
    hmmmbiubiubiu  
       4 小时 8 分钟前
    @bjzhou1990 vscode 对 wsl 的支持就像你在用一台 linux 开发.
    xubeiyou
        21
    xubeiyou  
       3 小时 45 分钟前
    暂时是 wsl 使用 cli 开发本地的 然后本地联调
    redbule
        22
    redbule  
       3 小时 39 分钟前
    使用 wsl2 ,使用 wsl2 的镜像模式(和主机共享端口)
    Windows 下请使用 powershell7
    VoiceEXONE
        23
    VoiceEXONE  
       3 小时 38 分钟前 via iPhone
    目前没有发现 AICoding CLI 对 Java 支持友好的
    sunpj
        24
    sunpj  
       3 小时 37 分钟前
    你在启动项里面加 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005 然后在远程 jvm 调试 加 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 我现在新公司只能用 windows 所以基本完整的搞了 idea+wsl2 的开发 实际上用 vscode 配置调试会方便很多 就是 vscode 开发 java 作为 ide 还是弱了点 作为 ai 的载具还是 key 的
    gwkoooo
        25
    gwkoooo  
       3 小时 10 分钟前
    我在用 copilot cli 用的 shell7 没发现什么问题
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   4081 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:16 · PVG 18:16 · LAX 03:16 · JFK 06:16
    ♥ Do have faith in what you're doing.