Почему после в консоли после компиляции java файла. 1)Командой javac Helloworld.java происходит компиляция все хорошо. Появился файл с расширением .class (байт код) 2) Хочу запустить программу по логике вещей нужно запускать java Helloworld.class, но у меня требует именно java Helloworld Почему именно так? и при запуске данной команды, какие файлы он подхватывает?
Потому что программа java ожидает получить в качестве своего параметра название класса, а не файла, в котором байткод этого класса находится. Если вы используете Java 11, вы можете запускать свою программу сразу java Helloworld.java, то есть без предварительной компиляции в class файл. При этом Helloworld.class, в той же директории, не должно быть, иначе не запустится.
Ответ на вторую часть вопроса -- "какие файлы он подхватывает" (не очень ясно, правда, что такое "подхватывает"). Виртуальная машина (java.exe) ищет класс, имя которого передано в параметре, в текущей директории и в директориях, перечисленных в параметре командной строки -jar, в системной переменной CLASSPATH, и/или в директориях, перечисленных в параметре -cp (-classpath). Напр.
java -cp ./bin com.my.package.MyClass
java -jar myJar.jar
При этом подразумевается, что в директории /bin есть поддиректория com/my/package, в которой лежит откомпилированный файл MyClass.class, а в файле myJar.jar есть поддиректория с именем META-INF, в которой лежит файл, называемый MANIFEST.FM, в котром есть строка вида
Main-Class: com.my.package.MyClass
(это указание виртуальной машине, какой класс из архива надо запускать) а в директории com/my/package лежит сам класс, MyClass.class, содержащий точку входа (public static void main(String[] args) { ... }).
Подробней см. https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html (там, правда, не очень внятно объясняется)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости