所以,我已经检查了一些关于这个主题的其他线程,例如:
Eclipse says package declaration does not match expected package ""
The declared package test does not match the expected package
libgdx: The declared package does not match the expected package ""
但他们都处理Eclipse(或Eclipse + Maven),我只使用VS Code而没有IDE或包管理器的所有功能。
正如标题所示,我收到的消息是: [Java]声明的包" controller"与预期的包裹不匹配""
我为每个尝试使用语法提供包的文件收到此消息:
package myPackageName;
即使有问题的文件是在右侧文件夹中。此问题仅作为视觉问题发生,即所有内容都使用javac进行编译。自从我开始在我的Java项目中使用VS Code以来,我一直在处理它。
如果感觉到包装错误,如何让红色波浪形和文件浏览标签中的红色字体消失?它让我疯狂,我无法快速找到实际上我的项目中有错误的文件,因为除了Driver之外,所有内容都标记为红色。
这是一张图片:picture
[编辑]摆脱不相关的编译时错误所以你可以看到它编译。</ p>
答案 0 :(得分:2)
包中的所有类都应在VSCode上打开(在不同选项卡上)。 当您想在同一目录中使用其他公共类时,也会发生同样的事情:它应该是可见的,但是当您运行该程序时,会出现编译时错误。然后再次解决的办法是在不同的选项卡上打开所有类。 希望对您有帮助
答案 1 :(得分:0)
有点晚了,但这是我的发现:
您的父文件夹为proto9
,因此在所有子文件夹中,即controller
,model
和view
。您应该编写package proto9.controller
,package proto9.model
等。您可以在正确的目录中很好地编译.java
文件,但不能100%确定为什么在文件目录中不能运行它处于时,尝试返回java.lang.NoClassDefFoundError
。
要成功运行它,请在终端中(假设您的文件已编译):
# cd one level out of your parent directory
PS C:\Users\Issac\Dropbox\Apps\Celerious Text\proto9> cd ..
PS C:\Users\Issac\Dropbox\Apps\Celerious Text> java proto9.controller.MainController
...
PS C:\Users\Issac\Dropbox\Apps\Celerious Text> java proto9.view.MainView
等
希望这也对您有用!