Пакет отсутствует в базовой структуре пакета в Java - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть базовая структура пакета.У меня есть класс Main и класс Player в первом пакете 'pack1', а затем в подкаталоге 'pack2' у меня есть класс Monster.Мне нужно использовать команды javac и java при запуске этой программы, потому что это моя домашняя работа, но она просто говорит мне, что package pack1.pack2 не существует.Я пытаюсь запустить его с помощью команды 'javac Main.java'.Если я удаляю пакеты и помещаю их в одну папку, то команда 'javac Main.java' работает нормально.Когда я запускаю эту программу с помощью команды Visual Studio Code «Run», она работает нормально.

Моя файловая структура выглядит следующим образом:

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();
    }
}

1 Ответ

0 голосов
/ 21 сентября 2019

в родительской папке pack1:

Скомпилируйте все ваши Java-файлы.

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

И затем

java pack1.Main
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...