当前位置: 首页 > 知识库问答 >
问题:

如何避免VS代码警告:“[myfile]。java是非项目文件,只报告语法错误”

袁青青
2023-03-14

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

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

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

package [the project folder];
import [the project folder].[the file with other classes].*;
  • 我只能通过将文件的文本(代码文本本身)复制到一个新项目的新java文件中,并将其放在一个新的不相关的文件夹中,来避免警告。代码本身是正确的,编译时没有错误。事实上,这就是答案,但这需要大量的体力劳动

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

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

  • 我如何修复构建失败,您想继续吗?在vscode
  • Visual Studio Code-Java-导入错误和更多

--

共有3个答案

麹飞航
2023-03-14

对于那些不使用Maven的人来说,这是一个答案。

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

FOLDER1(父项)包含

  • FolderA(java文件的直接项目文件夹)
  • FolderB(java文件的直接项目文件夹)

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

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

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

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

许学真
2023-03-14

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

WorkspaceRoot
│   projectA
└───projectB

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

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

公冶龙野
2023-03-14

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

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

只是为我工作。

 类似资料:
  • 问题内容: 我刚刚尝试了一个示例代码表单网络,它显示了如下警告 SimpleConvertImage.java:7:警告:com.sun.org.apache.xerces.internal.impl.dv.util.Base64是内部专有API,可以在以后的发行版com.sun.org.apache.xerces中删除。 internal.impl.dv.util.Base64; ^ Simpl

  • 问题内容: 我收到mongodb关于THP的以下警告 但是我确实设法手动关闭了THP 我加入的伎俩,以中和添加 至 我到底该如何避免该警告? 问题答案: MongoDB官方文档为该问题提供了几种解决方案。您也可以尝试此解决方案,该解决方案对我有用: 注意: 如果MongoDB版本大于3.0, 请尝试使用官方文档指令 __ 打开文件。 (如果没有此类文件,您可以检查,文件-信用:以下评论) 在紧接着

  • 在一个配置了多个应用项目和多个 Library 项目的多项目里,当同时运行所有测试的时候,测试结果整合到一份测试报告中可能是非常有用的。 为了实现这个目的,需要在同一个配置中添加另一个插件。可以通过以下方式添加: buildscript { repositories { jcenter() } dependencies { classpath

  • 我正在使用phpMyAdmin进行grendalhosting。不管我做什么,我总是会犯这些错误。我是PHP/MySQL新手。 警告:mysql_connect():用户“root@”10.1的访问被拒绝。在/home/u438954871/public_html/url shortner/connect中输入2.21“(使用密码:否)。php第8行 警告:mysql_select_db():在/

  • 我有一个问题与我的道具editToWork: app.js:42491[Vue warn]:避免直接修改道具,因为每当父组件重新渲染时,该值将被覆盖。相反,使用基于道具值的数据或计算属性。道具正在变异:“任务编辑” 组件TaskComponent.vue 组件EditTaskComponent:

  • 我目前正在运行为python林挺附加了pylint的VS代码。pylint给出的一个警告是,如果一行以空格结束,那么它会报错,VS代码会把它加入到问题计数中。 如果存在错误,则在所有错误解决之前不会显示警告,我想将反向添加到。仅当不存在其他警告时,才会显示。 我会接受更改VS代码或pylint的答案,我不在乎是哪个。我没有pylint的专用服务器。