前几天写完一个 Java 服务,也写了一个程序执行中的错误问题的排查小结。但是当初把 vscode 配置到可以正常运行并调试服务的状态并不是一帆风顺的。最大的问题是 JDK 的依赖问题。
机器上之前调试过一个开源的 Java 网盘应用,安装了 JDK 8。但是这次写的程序一跑,就会报最低需要 Java 11 的 JDK。
下载了 JDK 11,解压,往 vscode 的 settings.json 中增加了以下设置:
1 2 3 4 5 6 7 |
"java.configuration.runtimes": [ { "name": "JavaSE-11", "path": "C:\\Dandy\\DevTools\\jdk-11.0.8", "default": true } ], |
企图达到报错时的提示文字中提到的 JDK 11 只是 vscode 中 Java debugger 插件的要求,运行时仍可使用老的 Java 版本环境的效果,但怎么也做不到这种两全其美的平衡。最后还是把 JAVA_HOME
环境变量一并改掉才可以。
事后在 https://github.com/redhat-developer/vscode-java/wiki/JDK-Requirements#java.configuration.runtimes 处也能找到如下字样:
Simply defining JavaSE-11 in java.configuration.runtimes is not enough for vscode-java to start, java.home (or any of its alternative environment variables) still needs to point to a valid JDK 11 location.
看上去似乎又是说,不用动系统层面的 JAVA_HOME
,而是直接指定 vscode 的 java.home
也可以。没有测试。