如何避免 VS Code 警告:“[myfile].java是非项目文件,仅报告语法错误”

我正在Visual Studio Code的Java项目中运行一个构建任务。“问题”选项卡中的警告:

[myfile].java是非项目文件,仅报告语法错误

它指的是我在包含 main() 的类文件中加载的第一行:

package [the project folder];
import [the project folder].[the file with other classes].*;
  • 我只能通过将文件的文本(代码文本本身)复制到新项目的新不相关文件夹中的新java文件中来避免警告。代码本身是正确的,编译时没有错误。实际上,这就是答案,但这是很多手工工作。
  • 当我只是将带有警告消息的项目的java文件复制到新文件夹中时,警告仍然出现!!!!(!)
  • 当然,当我只是将整个项目文件夹复制到新位置时,错误仍然存在。

我猜想,将文本复制到具有相同名称和相同文件夹结构的新java文件中与复制文件本身不同,因为文件可能会被VS Code标记,因此即使文件夹结构被破坏,它们也具有项目戳记。也许这支持从恢复的原始文件中恢复项目结构?这可能是此视觉代码警告的问题吗?

我之前检查过其他线程,这只是最后一步。

--> 因此,我清理了 vscode 的 workspaceStorage(在 Windows 上:)并重新启动,但没有成功。C:\Users\USER\AppData\Roaming\Code\User\workspaceStorage


答案 1

尝试清理 Java 语言服务器工作区:

  1. CMD+SHIFT+P(在 WINDOWS 上按 CTRL+SHIFT+P)以显示命令调色板
  2. 选择“Java:清理 Java 语言服务器工作区”
  3. 重新启动和删除

只是为我工作。


答案 2

我得到了同样的警告,仅仅是因为我在同一个vscode工作区中有两个Java(Maven)项目。将项目 A 移出工作区后,项目 B 的警告就消失了。

WorkspaceRoot
│   projectA
└───projectB

我目前的解决方案是为一个工作区提供一个Java(Maven)项目,即每个vscode工作区一个Maven项目。

我的猜测是,vscode将同一工作区中的所有Java项目视为一个项目,因此,这些项目相互干扰。


推荐