vs code - 预期的java包名错误

Posted

技术标签:

【中文标题】vs code - 预期的java包名错误【英文标题】:vs code - Expected java package name error 【发布时间】:2018-06-23 22:23:00 【问题描述】:

我有一个具有以下目录结构的 java 项目(根据 Gradle 的 'java' 插件的要求,假设所有默认值)。

projectRootDir
 - src/main/java/com/myproj/Sample.java
 - build.gradle

// Sample.java code
package com.myproj;

public class Sample
    ...

在 VS Code 中打开 projectRootDir 文件夹会在 Sample.java 中显示以下包命名错误:

The declared package "com.myproj" doesn't match the expected package "main.java.com.myproj"

如何让VS Code识别/使用代码中提到的包?

注意:我正在使用以下扩展:RedHat 的 Java(TM) 语言支持和 Microsoft 的 Java 调试器

【问题讨论】:

您需要配置您的 VS 代码以将 src/main/java 作为源根文件夹,而不仅仅是 src。这应该可以解决问题 【参考方案1】:

如果您的文件已经在正确的目录中,请按 F1 并输入“清理 Java 语言服务器工作区”

【讨论】:

最简单的修复方法,我快疯了【参考方案2】:

为了解决问题,请将项目的根文件夹添加到工作区中。要在 VS Code 中执行此操作,请转到文件 ->“将文件夹添加到工作区”,然后选择根文件夹(源文件夹)。

【讨论】:

这似乎不起作用,因为不需要工作区。如果您将文件夹作为项目打开,则不需要工作区 @DiamondDrake 你知道了吗?我有一个多模块 maven 项目,VSCode 无法渲染子模块以挽救其生命。我必须在它自己的 VSCode 窗口中打开该项目。这太疯狂了,因为我在这个项目中有 20 多个子模块。 @user0000001 对我来说是一个父 pom 改变了 src 根目录 @DiamondDrake 感谢您抽出宝贵时间回复。我只是在 VSCode 安装中清除 workspaceStorage 目录。 FWIW 我还必须右键单击主文件夹(只是***文件所在的空白区域)并选择“从 java 源路径中删除文件夹”【参考方案3】:

因为vscodesrc folder 设置为默认Java Source Path,您应该将其更改为文件夹src/main/java。只需右击vscode中的文件夹src/main/java,点击选项Add Folder to Java Source Path,然后重新打开文件,错误就消失了。

【讨论】:

不适用于 OP 正在使用的插件,抛出警告说使用 pom 配置 src root 当我使用 Java Dependency Viewer 扩展时不起作用。 这个答案对我帮助很大,谢谢!仅适用于遇到此错误的任何人(可能在使用 Java 项目管理器扩展时):Cannot add to source path because parent is already... 只需右键单击源的前一个根目录(例如:src 文件夹)并将其从源路径中删除,然后添加新的根目录到源路径。希望有帮助:)【参考方案4】:

项目根目录 --> .vscode --> settings.json

更改了下面的条目以指向我的根源文件夹。这被设置为 src/pkg1。更改为 src 并开始工作。

“java.project.sourcePaths”:[ “源代码” ]

【讨论】:

【参考方案5】:

就我而言,问题是faustinoaq.javac-linter 扩展。我卸载了 linter 扩展,一切正常。

【讨论】:

以上是关于vs code - 预期的java包名错误的主要内容,如果未能解决你的问题,请参考以下文章

Java 包 -

运行所选代码生成器时出错:“预期具有协定名称 "NuGet.VisualStudio.IVsPackageInstallerServices" 的1导出 ——VS2015错误记录

如何在 MacOS Monterey 上修复 VS COde“致命错误:运行时:bsdthread_register 错误”

在 VS Code 中,禁用错误“JSON 中不允许评论”

在 VS Code 中从 JS 文件中删除 [ts] 错误

在 vs code 终端中安装镭包时如何解决此错误?谢谢