繁体   English   中英

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

[英]How to avoid Visual Studio Code warning: "[myfile].java is a non-project file, only syntax errors are reported"

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

[myfile].java为非工程文件,仅报语法错误

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

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

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

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

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

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

  1. CMD+SHIFT+P (CTRL+SHIFT+P ON WINDOWS) 显示命令面板
  2. 选择“Java:清理 Java 语言服务器工作区”
  3. 重启和删除

刚为我工作。

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

WorkspaceRoot
│   projectA
└───projectB

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

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

这是给不使用 Maven 的人的答案。

整个问题来自加载的不是直接项目文件夹,而是父文件夹,尽管项目从一开始就在其直接项目文件夹中开发。

FOLDER1(父)包含

  • 文件夹A(java文件的直接工程文件夹)
  • FolderB(java文件的直接工程文件夹)

我已经分别编写了这些项目。 但是有一次我在 VS Code 中打开了 FOLDER1。 这似乎将 2 个项目合并为一个项目。 在此之后,我改回只打开 FolderA/B 并收到问题中报告的警告。

现在我再次打开了 FOLDER1 并使两个 FolderA/B 项目在没有警告的情况下运行(也许您可能只是注释掉所有内容而不修复任何内容,但这是未经测试的),打开隔离的 FolderA/B 项目也不会引发任何警告。 似乎 VS Code 使打开父文件夹成为干扰子项目的新项目的开始。

我收到警告的原因是最后另一个项目文件夹中的代码错误(不重要,但我忘记在某些 java 文件的开头加载“FolderA”项目所需的本地 package)。

无论我遇到什么错误,警告都令人困惑,因为我只处理与“FolderA”无关且没有代码问题的项目“FolderB”。 这导致了奇怪的效果,我在“FolderB”项目中也收到了“FolderA”项目的警告,因为 VS Code 将两者视为一个项目

我为此苦苦挣扎了很长时间,但在互联网上没有找到合适的解决方案。 我通过以下步骤设法做到了:以下是我执行的操作:

  1. 您可以在左窗格中看到文件夹。 (或按 crt+shift+e 打开左窗格)。
  2. 将它们一一右键单击,然后按“将文件夹添加到 Java 源路径”。

解决方案中建议的那个并没有 100% 解决我的问题。 这个扩展的问题是“Red Hat 对 Java(TM) 的语言支持”,它让我们的文件夹远离源路径。

我重命名了 package ,其中包含“[myfile].java 是一个非项目文件,只报告语法错误”,它对我有用。

今天,我在 Java 教程视频介绍中脱离脚本时遇到了这个问题,并以某种方式修复了它。 此解决方案可能不适用于这里的每个人,但我希望它有所帮助。

问题(一):[myfile].java是非工程文件,只报语法错误。

我如何修复它...转到https://code.visualstudio.com/docs/languages/java并阅读“使用 Java 源文件”和“使用 ZD52387880E15EA228117A723D 项目”部分。 基本上,在 VS Code 中使用“Java 项目”时,您必须安装必要的扩展才能使用这些项目文件。

In my case, I needed to build a Maven project supported through the extension "Language Support for Java by Red Hat" and "Server Connector by Red Hat", since one of the extensions did not come with VS Code's "Coding Pack for Java - Windows”或“Java 开发工具包:Amazon Corretto”。

下载扩展程序后,我打开命令面板(Ctrl+Shift+P)并输入“Java:Create Java 项目”>“Maven”>“Maven-Archetype-Quickstart”>“1.4”>[name] 输入组 ID > [名称] 输入工件 id > 然后选择我创建的文件夹,该文件夹包含我的 Java 文件和原始错误代码(如上所示)。 完成处理后,我重新打开了 VS 代码并打开了我的文件夹。 运行程序,错误消失了。

您可能必须手动复制/移动文件或按 CTRL+Shift+E 打开左窗格并将所需的任何内容添加到 Java 源路径。

祝你好运!

对我来说,删除 C:\Users\yourHome\AppData\Roaming 路径中的代码文件夹即可解决问题。

我第一次为 Java 使用了 VScode 编辑器,我在简单的HelloWorld程序中遇到了这个问题。

我试图清理编辑器的工作区,但问题没有解决。

然后,我在 C:// 驱动器中创建了一个名为mypractice的文件夹,然后在 VSCode 工作区中添加了相同的文件夹,然后在新创建的工作区中创建了一个 java 文件。

当我运行该文件时,它运行时没有任何警告或错误。

而不是直接用vs代码打开Main.java文件不要这样做

在文件夹中右键单击文件夹后,通过选择“使用代码打开”选项打开 vs code 中的文件夹,然后运行程序,这样它就不会再次显示该问题执行此操作

这就是帮助我摆脱这个问题的原因(Main.java 是一个非项目文件,只报告语法错误)所以我分享了。

您应该将您的文件夹(您的特定文件所在的文件夹)添加到工作区。

我一直在运行 Dev Container/ Docker图像,多次重建并没有帮助解决这个错误。 原来我不小心在树的根目录中创建了当前用户无权访问的目录。 它一直是问题的根源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM