Если файл класса принадлежит пакету, то
package PackageName;
включается в исходный код этого файла.Поэтому, когда jvm вызывается с помощью записи
java PackageName.classfilename
, он выполняется.
Является ли «package PackageName» гарантией jvm, что этот файл класса принадлежит именно этому пакету?Потому что, если мы опускаем инструкцию "package PackageName", то jvm все равно находит файл класса, но выдает
Exception in thread "main" java.lang.NoClassDefFoundError: Classfilename
wrongname PackageName/ClassfileName
Это означает, что jvm находит файл, но есть некоторая причина, по которой он считает, что этот файл класса имеетнеправильное имя.