Почему после в консоли после компиляции 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 (там, правда, не очень внятно объясняется)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Разбираю конкурентность и заметил такие вариации Executor-а Для однопоточности
Я много искал как сравнить два аудио файла, но нигде не нашел пример такой задачи
Как остановить горизонтальный скролл, а затем скролить по горизонтали в обратном направлении
Ниже скрипт для подгрузки данных в таблицу на странице из БД, но в консоли ошибка, и я не понимаю в чем делоВот скрипт: