首页 > 解决方案 > Java中基本包结构中缺少包

问题描述

我有一个基本的包结构。我在第一个包“pack1”中有主类和播放器类,然后在子目录“pack2”中有一个怪物类。运行这个程序时我需要使用 javac 和 java 命令,因为这是我的作业,但它只是告诉我包 pack1.pack2 不存在。我正在尝试使用命令'javac Main.java'来运行它。如果我删除包并将它们放在同一个文件夹中,那么命令“javac Main.java”可以正常工作。当我使用 Visual Studio Code“运行”命令运行该程序时,它运行良好。

我的文件结构如下所示:

pack1
|_ Main.java
|_ Player.java
|_ pack2
   |_ Monster.java

在过去的 2 个小时里,我一直在与这个作斗争,试图用谷歌搜索不同的解决方案,但没有运气。我可能以错误的方式使用 javac 命令。我曾尝试使用 -d 参数和一些路径参数,但由于我不清楚它们,这可能不是使用它们的正确方法。

package pack1;
import pack1.pack2.Monster;

public class Main extends Monster {
    public static void main(String[] args) {
        killPlayer();
    }
}
package pack1;

public class Player {

    public void shout() {
        System.out.println("Shout");
    }
}
package pack1.pack2;
import pack1.Player;

public abstract class Monster {

    public static void killPlayer() {
        Player p = new Player();
        p.shout();
    }
}

标签: javaimportpackage

解决方案


在 pack1 父文件夹上:

编译所有的 java 文件。

javac $(find . -name "*.java")

接着,

java pack1.Main

推荐阅读