我已经安装了 VSCode flatpak 包。
flatpak install flathub com.visualstudio.code
现在有一个文件flatpak-warning.txt
内容如下
https://www.flathub.org
------------------------------------------------------------------------------------
| Warning: You are running an unofficial Flatpak version of Visual Studio Code !!! |
------------------------------------------------------------------------------------
Please open issues under: https://github.com/flathub/com.visualstudio.code/issues
This version is running inside a container and is therefore not able
to access SDKs on your host system!
To execute commands on the host system, run inside the sandbox:
$ flatpak-spawn --host <COMMAND>
To make the Integrated Terminal automatically use the host system's shell,
you can add this to the settings:
{
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.profiles.linux": {
"bash": {
"path": "/usr/bin/flatpak-spawn",
"args": ["--host", "--env=TERM=xterm-256color", "bash"]
}
}
}
This flatpak provides a standard development environment (gcc, python, etc).
To see what's available:
$ flatpak run --command=sh com.visualstudio.code
$ ls /usr/bin (shared runtime)
$ ls /app/bin (bundled with this flatpak)
To get support for additional languages, you have to install SDK extensions, e.g.
$ flatpak install flathub org.freedesktop.Sdk.Extension.dotnet
$ flatpak install flathub org.freedesktop.Sdk.Extension.golang
$ FLATPAK_ENABLE_SDK_EXT=dotnet,golang flatpak run com.visualstudio.code
You can use
$ flatpak search <TEXT>
to find others.
现在我已经在系统上安装了 OpenJDK。
java --version
openjdk 11.0.13 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.21.10)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.21.10, mixed mode, sharing)
但是当我尝试创建 Java 项目时,它没有显示构建工具。
现在我的问题是我不知道在哪里添加这些行 -
{
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.profiles.linux": {
"bash": {
"path": "/usr/bin/flatpak-spawn",
"args": ["--host", "--env=TERM=xterm-256color", "bash"]
}
}
}
我也无法理解——
$ flatpak-spawn --host <COMMAND>
答案1
我不确定您是否仍在寻找答案,但这对我有用(不是使用系统 SDK,而是使用 Flatpak 扩展制作的 SDK):
- 检查 Flatpak 可用的 Java SDK 扩展(可以通过 VSCode 访问)
flatpak search Sdk | grep -i jdk
: jdk 搜索输出 - 安装您想要的,例如
flatpak install org.freedesktop.Sdk.Extension.openjdk17
- 按照 flatpak-warning.txt 文件中的说明,您可以通过使用 VSCode 命令运行 flatpak shell 来查看 flatpak 可用的内容(二进制文件、SDK 等)
flatpak run --command=sh com.visualstudio.code
。第 2 步中安装的 JDK 扩展保存在 flatpak 层次结构中的 /usr/lib/sdk 中(至少在我的 Fedora 安装中如此,但我认为在 Ubuntu 上应该相同)。通过运行确认ls /usr/lib/sdk
在 flatpak shell 中你应该在那里看到你的 SDK(可能还有其他东西): 列在 /usr/lib/sdk 中 - 您需要将其添加到 VSCode 配置中,对我来说它位于 settings.json 中:
"java.jdt.ls.java.home": "/usr/lib/sdk/openjdk17/jvm/openjdk-17.0.1/"`,
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "/usr/lib/sdk/openjdk17/jvm/openjdk-17.0.1/",
"default": true
}
],
此后,我重新启动了 VSCode,一切正常。顺便说一句,您在 flatpak shell 中执行的任何操作都应该在 VSCode 本身的终端窗口中同样有效。
答案2
您可以在 settings.json 文件中添加这些行。
正如 flatpak-warning.txt 中提到的,在沙箱内运行主机命令,例如:
flatpak-spawn--host java--版本
答案3
我正在使用 Linux Mint 21.2。我从内置 flatpak 软件管理器安装了 VSCode,但遇到了同样的问题。
首先,我认为明确编辑 VSCode 配置来访问系统 SDK 相当麻烦。
其次,当我打开同步时,我认为本地 flatpak VSCode 配置会弄乱在线同步的版本,因为 VSCode 要求我合并冲突。
因此,我宁愿从https://code.visualstudio.com/download并手动安装。
sudo apt install ./code_(whatever_version).deb
这样安装的VSCode就可以正常工作了。