Чтобы до конца разобраться в том, как собирается ваш проект при помощи IDE или специальных сборщиков вроде Ant, прежде нужно хотя бы один раз собрать проект вручную.
Вкратце процесс сборки состоит из следующих шагов:
Компиляция из исходников в байт-код производится при помощи программы javac, которая входит в JDK. Перейдите в директорию вашего java-проекта и выполните следующую команду, подставляя, где необходимо, ваши значения:
В результате выполнения этой команды у вас появятся файлы байт-кода. Теперь их нужно упаковать в jar-архив. Перейдите в ту директорию, которую вы указали в опции -d для компиляции проекта. Скопируйте в неё необходимые конфигурационные файлы (например, log4j.xml). Выполните команду:
Опция v - отображать служебную информацию в процессе создания архива
Опция f - производить вывод не в консоль, а в файловую систему
В качестве имени файла архива можно указать любое имя. Архиву, как правило, даётся расширение jar.
Обратите внимание на точку в конце - это указание того, что в текущей директории находятся файлы байт-кода. Если бы jar запускался из другой директории, вместо точки следовало бы указать конкретный путь.
В результате вы получите jar-архив, в который буду запакованы файлы байт-кода, дополнительные конфигурационные файлы, а также будет создан стандартный файл /META-INF/MANIFEST.MF - нам его необходимо модифицировать.
Откройте архиватором созданный архив и модифицируйте файл MANIFEST.MF, добавив в него две строки:
Class-Path: пути_до_файлов_библиотек
Main-Class: полное_имя_класса_с_main
В Class-Path следует перечислить все необходимые файлы библиотек с относительными путями до них. Если библиотек несколько, то пути разделяются пробелами. Также рекомендуется положить все эти библиотеки в одну директорию.
В Main-Class нужно указать полное имя класса с методом main (т.е. с указанием пакета, например org.test.SimpleMain).
Внимание! Проследите за тем, чтобы в конце файла MANIFEST.MF была пустая строка (ещё один перевод строки) - это требование спецификации. В противном случае возможна некорректная обработка этого файла.
Сохраните изменения в архиве. Теперь вы можете запустить полученный архив при помощи команды java -jar имя_архива и ваше приложение начнёт свою работу.
Вкратце процесс сборки состоит из следующих шагов:
- Компиляция байт-кода в виде *.class-файлов из исходников.
- Упаковка полученных файлов с байт-кодом, а также необходимых конфигурационных файлов в jar-архив.
- Добавление в файл MANIFEST.MF внутри архива относительных путей до необходимых библиотек.
Компиляция из исходников в байт-код производится при помощи программы javac, которая входит в JDK. Перейдите в директорию вашего java-проекта и выполните следующую команду, подставляя, где необходимо, ваши значения:
javac -d директория_для_байт_кода -classpath пути_до_необходимых_библиотек -sourcepath директория_с_исходниками путь_до_класса_с_main
- Опция -d указывает, куда нужно положить class-файлы.
- Опция -classpath задаёт набор путей до необходимых в данном проекте файлов сторонних библиотек. Если библиотек несколько, пути разделяются точкой с запятой ";".
- Опция -sourcepath указывает путь до директории, в которой лежат исходники. У меня она называется "src".
- В конце следует указать путь до исходника с классом, который содержит метод main.
В результате выполнения этой команды у вас появятся файлы байт-кода. Теперь их нужно упаковать в jar-архив. Перейдите в ту директорию, которую вы указали в опции -d для компиляции проекта. Скопируйте в неё необходимые конфигурационные файлы (например, log4j.xml). Выполните команду:
jar cvf имя_файла_архива .Опция с - создать архив
Опция v - отображать служебную информацию в процессе создания архива
Опция f - производить вывод не в консоль, а в файловую систему
В качестве имени файла архива можно указать любое имя. Архиву, как правило, даётся расширение jar.
Обратите внимание на точку в конце - это указание того, что в текущей директории находятся файлы байт-кода. Если бы jar запускался из другой директории, вместо точки следовало бы указать конкретный путь.
В результате вы получите jar-архив, в который буду запакованы файлы байт-кода, дополнительные конфигурационные файлы, а также будет создан стандартный файл /META-INF/MANIFEST.MF - нам его необходимо модифицировать.
Откройте архиватором созданный архив и модифицируйте файл MANIFEST.MF, добавив в него две строки:
Class-Path: пути_до_файлов_библиотек
Main-Class: полное_имя_класса_с_main
В Class-Path следует перечислить все необходимые файлы библиотек с относительными путями до них. Если библиотек несколько, то пути разделяются пробелами. Также рекомендуется положить все эти библиотеки в одну директорию.
В Main-Class нужно указать полное имя класса с методом main (т.е. с указанием пакета, например org.test.SimpleMain).
Внимание! Проследите за тем, чтобы в конце файла MANIFEST.MF была пустая строка (ещё один перевод строки) - это требование спецификации. В противном случае возможна некорректная обработка этого файла.
Сохраните изменения в архиве. Теперь вы можете запустить полученный архив при помощи команды java -jar имя_архива и ваше приложение начнёт свою работу.
да есть еще такой вариант https://javahelp.online/osnovy/kompilyatsiya-java-koda-iz-komandnoy-stroki
ОтветитьУдалить