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

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

  •  
  •   allyn · 17 小时 5 分钟前 · 1383 次点击

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

    你提到的问题我觉得可能更多是 wsl 的网络配置相关的东西
    ic2y
        15
    ic2y  
       15 小时 11 分钟前
    @allyn 你安装一个 gateway ,让 gateway 通过 wsl 去开发,几乎没有 bug
    ic2y
        16
    ic2y  
       15 小时 11 分钟前
    jetbrain gateway
    anivie
        17
    anivie  
       15 小时 6 分钟前
    wsl 没有那么开箱即用,是需要适配的,idea 对 wsl 的适配并不完美,很多 bug ,用起来还不如远程开发。不过貌似 jb 的远程开发更难用就是了……还是换 mac 解君愁吧
    ThisDay
        18
    ThisDay  
       14 小时 14 分钟前
    vscode 系列对 wsl2 适配的非常好,至于 jb ,你说的端口占用跟 debug 卡死问题,我 issue 提了快两年了也没修。
    LowBi
        19
    LowBi  
       14 小时 0 分钟前
    看了此贴 也是打消了使用 wsl 开发 Java 的计划了,Claude code 装 Windows 上用用看先
    hmmmbiubiubiu
        20
    hmmmbiubiubiu  
       13 小时 56 分钟前
    @bjzhou1990 vscode 对 wsl 的支持就像你在用一台 linux 开发.
    xubeiyou
        21
    xubeiyou  
       13 小时 32 分钟前
    暂时是 wsl 使用 cli 开发本地的 然后本地联调
    redbule
        22
    redbule  
       13 小时 26 分钟前
    使用 wsl2 ,使用 wsl2 的镜像模式(和主机共享端口)
    Windows 下请使用 powershell7
    VoiceEXONE
        23
    VoiceEXONE  
       13 小时 26 分钟前 via iPhone
    目前没有发现 AICoding CLI 对 Java 支持友好的
    sunpj
        24
    sunpj  
       13 小时 25 分钟前
    你在启动项里面加 -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  
       12 小时 58 分钟前
    我在用 copilot cli 用的 shell7 没发现什么问题
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:04 · PVG 04:04 · LAX 13:04 · JFK 16:04
    ♥ Do have faith in what you're doing.