Я кодировал на java, чтобы протестировать пакеты. У меня есть папка Demo внутри Demo. У меня есть 2 папки, одна называется Say, а другая - OtherMainClass.
в папке Say у меня есть класс SayClass.java вот код:
package Say;
public class SayClass {
public void sayTestMessage() {
System.out.println("This is a test");
}
}
в папке OtherMainClass у меня есть файл с именем OtherMain.java, вот код:
import Say.*;
public class OtherMain {
public static void main(String[] args){
SayClass s = new SayClass();
s.sayTestMessage();
}
}
когда я компилирую OtherMain.java, я получаю следующую ошибку:
OtherMain.java:1: error: package Say does not exist
import Say.*;
^
OtherMain.java:5: error: cannot find symbol
SayClass s = new SayClass();
^
symbol: class SayClass
location: class OtherMain
OtherMain.java:5: error: cannot find symbol
SayClass s = new SayClass();
^
symbol: class SayClass
location: class OtherMain
3 errors
Почему Java не может найти пакет Say? Если я неправильно понимаю пакеты, объясните, что я делаю неправильно, а что правильно.
@failedProgrammer Я не уверен, что вы пытаетесь сказать, - если они возникли проблемы с этим, Maven / Ant / Gradle, конечно, не поможет. Там нет необходимости, чтобы перейти к системе сборки / зависимости понять пакет именование или каталоги конвенций.




Вы должны использовать инструкцию ниже при импорте в OtherMain
import Demo.Say.SayClass
Кроме того, в названии пакета используются строчные буквы, так что любезно проведите рефакторинг кода, чтобы использовать его вместо Say to say и Demo в demo. А также при создании SayClass используйте пакет demo.say. Итак, ваш код должен быть похож на
package demo.say;
public class SayClass {
public void sayTestMessage() {
System.out.println("This is a test");
}
}
после того, как вы переименуете все пакеты в нижний регистр, вы можете использовать
import demo.say.SayClass
или
import demo.say.*
в классе OtherMain
Предложения: Лучше использовать стандартную версию IDE сообщества, такую как Intellij Idea, Eclipse и т. д., Которая автоматически заботится об именах пакетов, соглашениях и множестве других вещей по дому.
и просмотрите документы / руководства по соглашению об именах Java, такие как https://www.javatpoint.com/java-naming-conventions