Java. 02. Компиляция, запуск и создание JAR на примере простой программы
HTML-код
- Опубликовано: 29 сен 2024
- Рассмотрим как создать примитивную программу на Java, откомпилировать ее, запустить и создать загрузочный файл стандартными средствами JDK.
Продолжение темы в видео по ссылке: • Java. 12. Компиляция, ...
#Java #Jar #Компиляция #Запуск
Он кодит на блокоте!!
он крутой
Спасибо огромное!
Для начала, нужно убедиться, что в комплекте jdk есть файл jar.
Если файл есть - тогда перепроверить, как выполнена установка jdk (первое видео в данном плейлисте)
если все корректно, и все равно не работает - то нужно разбираться в вашей ОС. или открыть командную строку в каталоге где расположен jar.exe и попытаться выполнить команду оттуда.
@@codeandtest Да у меня есть jdk. Спасибо что ответили и огромное спасибо за видео, я решил проблему. Большое спасибо!
Пишет javac не является внутренней или внешней командой
Возможно путь к java не прописан в системных переменных
Здравствуйте! А как собрать когда два или более файлов java?
Здравствуйте
javac F1.java F2.java (через пробел список файлов для компиляции)
jar cf jar-file файл1 файл2 файл3 ... (через пробел список файлов для сборки)
@@codeandtest спасибо. Но я сделал через Эклипс.
Привет, есть контакты как с тобой связаться ?
привет
qa.codeandtest@gmail.com
@@codeandtest Видео супер информативные, спасибо!
Да, вот поэтому JAVA и не хочется учить 😁 Просто гемморой какой то с компиляцией. На С++ нажал кнопку и EXE шник готов. Для JAR файлов есть проги, которые его в EXE шник конвертируют, а телефоны вроде JAR напрямую открывают
IDE тоже могут собрать JAR автоматически. Но для понимая как все работает, лучше уметь собирать jar вручную
У меня java запускается из любой папки а javac НЕТ - хотя я в BAT нике пропатчил папку JAVA. ПОЧЕМУ ? Лайк все равно кинул, ты молодец, единственный кто показал полный цикл компиляций до JAR - обычно говностриммеры останавливаются на *.class
Спасибо за отзыв
Сложно сказать в чем ошибка, не видя всего что настроено в системе. Но как вариант можно скомпилировать указав полный путь до javac. Например так c:\Program Files\Java\jdk1.8.0_171\bin\javac.exe
@@codeandtest Да это надо какие то BAT ники писать для компиляций, чтобы столько текста каждый раз не вводить. Покажи как игруху простейшую на JAVA написать. Как там собираются все спрайтики и картинки для движения
попробуй в Path добавить /bin
@@serobrine Да все не надо, я нашел как в С++ делать компиляцию в кроссплатформенный проект
C:\Users\dop2o\Desktop\2>javac Main.java
error: file not found: Main.java
Usage: javac
use --help for a list of possible options
Скорее всего путь до Main.java нужно тоже полный прописать
@@codeandtest вроде полный написал. Тот файл, что в иде написал, скомпилировался и потом запустился. А с блокнота не компилируется...
У тебя в консоле не полный путь пишет
@@димаковтун-й3л а как полный прописать?
@@RumEvo перенеси файлы в папку, пофиг какую и прям с этой папки ввойди в консоль. Скорее всего ты с главного экрана входил, а там не всегда прописывает полный путь
Спасибо за видос
Спасибо за комментарий!
Спасибо большое! Информация подана хорошо. В моем случае не помогло, но все равно спасибо. Я повторил квест, квест вышел. В моем случае было два класса в одной папке. Для этого случая хотелось бы увидеть вариант сборки jar файла для нескольких файлов проекта. Плюс если там целое дерево классов со своими ветками в виде папок с классами что делать? Я решил свой вопрос, но, мне кажется, актуально было бы расширить тему. В частности открыть возможность успешной сборки в InteliJ Idea, которая у меня не получилась. За инфу благодарю, спокойствие автора на высоте 😊
спасибо за комментарий.
надеюсь что в новом видео вы найдете ответы на свои вопросы (ruclips.net/video/Snc9H2dEQdI/видео.html)
Но тема сборки приложения в IDE с помощью maven - это уже тема для отдельного видео
Подскажите пожалуйста а декомпилированный java можно скомпилировать обратно в класс? попробовал выдаёт такую ошибку: Note: Recompile with -Xlint:deprecation for details.
Никогда не делал декомпиляцию, но могу предположить, что если декомпиляцию выполнена корректно и все файлы нужные есть - то должно компилироваться
там можно сделать несколько классов и папок внутри jar?
Да, можно.
В данном видео один файл для примера
а для чего это нужно делать? ну в смысле где использовать Jar ?
буду благодарен за развернутый ответ
Добрый день.
По факту jar - это собранное приложение, которое состоит из множества классов.
Он нужен для того что бы удобно хранить/перемещать/запускать java-приложение.
Jar по сути это аналог файла .exe в Windows. Только exe запускает операционная система, а jar запускается на виртуальной машине Java
Спасибо, помог👍👍
👍
А что если пишет "файл не найден" в командной строке
какой именно файл не найден?
@@codeandtest то есть файл находит, но не компилируется, когда второй раз ввожу код "java Main" не компилируется, Hello world не выводит, а пишет файл не найден
спасибо за видео
Спасибо за отзыв
Я вот никак не могу понять, почему C++ нельзя на разных платформах запускать (не будем считать формат .exe)
Это ещё зависит от скомпилируемого машинного кода которая была написана например, на виндовс и которая читает этот код другая ОС? (Блин незнаю как сформулировать мысль)
Буду рад за ответ! А так я недавно нашёл статью на стековерфлоу на английском. Прост немного я там не понял, мб завтра постараюсь разобрать
Добрый день.
Я с c++ не работал, поэтому не могу точно ответить.
Но если учесть что на с++ пишут и операционные системы и драйвера, могу предположить, что писать под linux на нем можно. Главное знать как))
C++ статический компилятор. Вы пишете код и он копилируется в бинарный код, который машинозависимый. В Java код копилируется в байт код который, при его исполнении его интерпретирует виртуальная машина Java в бинарными которые уже зависимы и машины на которой запускается код. Надеюсь понятно
@@codeandtest Вы правы
Потому что код Java компилирует виртуальная машина (JVM). На каждом пк своя реализация этой JVM, но код она должна компилировать одинаково для всех платформ
исходный код С++ компилирует не виртуальная машина, а сам компьюдахтер.
Что лучше, создать виртуальную машину для каждой платформы 1 раз, чтобы она могла компилировать любой код для конкретного языка программирования,
или создавать разные версии одной программы для каждой платформы...
Абсолютно ничего полезного