【问题标题】:The declared package "a" does not match the expected package ""声明的包 \"a\" 与预期的包 \"\" 不匹配
【发布时间】:2023-01-13 03:20:31
【问题描述】:

具有此文件架构:

folder "a"
        |
        |_____ MyClass.java

我的“.java”文件中有这段代码:

package a;

public class MyClass {
    public static void main(String[] args) {
        System.out.println("Hello world");

    }
}

我想知道我收到此错误的原因(我使用的是 visual studio,我说它以防它与我的错误有关):

The declared package "a" does not match the expected package "".

我注意到,有时当我重新打开我的文件夹时,它会突然起作用,但有时却不起作用。

我不知道为什么会发生这种情况,我相信它与 visual studio 相关的原因,但它更进一步,因为当我尝试编译它时,正如所说,有时它有效,而其他人则没有。

告诉我这个错误:

Error: Could not find or load main class MyClass
Caused by: java.lang.NoClassDefFoundError: a/MyClass (wrong name: MyClass)

【问题讨论】:

  • 在 Visual Studio 中,您需要“源文件夹”是a 上方的文件夹,而不是a 本身,因为包名称是相对于源文件夹解析的。
  • 这正是我要找的,谢谢!!!

标签: java compiler-errors


【解决方案1】:
package a;

public class MyClass {
    public static void main(String[] args) {
        System.out.println("Hello world");

    }
}

这取决于您从何处引用该课程。如果a 是一个子文件夹,并且您正尝试从a 中编译MyClass.java,它将不起作用(除非您指定正确的文件夹,如./.. 或类似的文件夹。包是相对于某些根文件夹或其他包的.

【讨论】:

    猜你喜欢
    • 2019-07-10
    • 2021-11-12
    • 2011-10-23
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多