gradle Visual Studio代码无法识别java项目

k5ifujac  于 2022-12-04  发布在  Java
关注(0)|答案(2)|浏览(281)

VS代码无法识别我的java项目。该项目是一个minecraft mod的模板代码,找到了here。我已经安装了插件

  • “Java调试工具”
  • “Java扩展包”
  • “Redhat提供的Java语言支持”
  • “Java测试运行程序”
  • “Java项目管理器”

我还得到一个与gradle相关的错误。

Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-7.0.2-bin.zip'.
java.io.StreamCorruptedException: invalid type code: 00
invalid type code: 00

这是我的settings.json文件

{
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "java.configuration.updateBuildConfiguration": "interactive",
    "java.home": "/usr/lib/jvm/java-16-openjdk-amd64",
    "java.configuration.runtimes": [
        {
          "name": "JavaSE-1.8",
          "path": "/usr/lib/jvm/java-8-openjdk-amd64",
          "default": true
        },
    ]
}

我的Java文件没有代码完成功能。在它工作之前,在Visual Studio的右下角它显示了我正在使用的Java版本,但现在它只显示Java。我猜这是因为Gradle有问题,因此无法计算出我的Java版本。感谢您的时间。

**更新:**这似乎工作,并给予我自动完成,但我仍然得到一个Gradle相关的错误上面提到的。

{
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "java.configuration.updateBuildConfiguration": "interactive",
    "java.home": "/usr/lib/jvm/java-16-openjdk-amd64",
    "java.configuration.runtimes": [
        {
          "name": "JavaSE-1.8",
          "path": "/usr/lib/jvm/java-8-openjdk-amd64",
          "default": true
        },
        {
            "name": "JavaSE-16",
            "path": "/usr/lib/jvm/java-16-openjdk-amd64",
        },
    ]
}
7hiiyaii

7hiiyaii1#

对于任何和我遇到同样问题的人,请确保您的settings.json文件看起来和我的文件相似,包括java 1.8运行配置和java 11+运行配置,与指定为主路径的配置相同。这应该可以修复java语言级别。您可以忽略gradle错误,但必须使用gradle runClient,而不是vscode提供的运行配置。

dauxcl2d

dauxcl2d2#

在我的例子中,我通过创建一个新的Java项目并比较生成的文件来解决这个问题。

<buildSpec>
        <buildCommand>          <!-- was missing -->
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature> <!-- was missing -->
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>

此外,.settings/org.eclipse.jdt.core.prefs中的一些设置也丢失了,但他们并没有立即修复这个问题,直到我添加了上面的内容。
当然,每次进行更改时都需要清理工作空间(使用... -> clean workspace或命令面板Java > clean Java Language server workspace

相关问题