Используйте команду jar
для создания исполняемого файла JAR.По сути, это ZIP-файл с определенными гарантиями.
Внутри jar-файла вам потребуется (это требование) каталог / META-INF с файлом в нем с именем манифест (/ META-INF /MANIFEST.MF) .Он описывает «манифест» файла JAR, который в некотором роде смоделирован из манифеста доставки.
Внутри файла MANIFEST.MF вам нужна директива
Main-Class: org.mystuff.path.Main
, которая должнапредписать JVM запускать класс org.mystuff.path.Main, когда файл jar «исполняется» с помощью команды
java -jar myproject.jar
Обратите внимание, что файлы JAR имеют тенденцию обрабатывать пути к классам по-разному, в том смысле, что они игнорируютпеременная среды CLASSPATH и параметры командной строки -classpath.Вам нужно добавить директиву classpath в файл MANIFEST.MF, если вам нужно сослаться на другие файлы JAR.Используйте приведенную выше ссылку на манифест, чтобы увидеть подробности, касающиеся встраивания пути к классам.
В зависимости от простоты «проекта», одного JAR-файла может быть достаточно для отправки ему;однако, если вам нужно больше, вам может понадобиться отправить несколько файлов в несколько каталогов.В этом случае поместите файлы (включая файл JAR) и каталоги во второй zip-файл.Несмотря на то, что вы можете выбрать один из нескольких способов «упаковать» элементы, я рекомендую
(layout inside the zip file)
/Readme.txt (a text file describing what to do for new comers)
/License.txt (a text file describing how liberal / restrictive you wish to be concerning your authorship rights.
(the license sounds like overkill, but without it nobody can prove they're not breaking the law)
/bin/myprogram.sh (shell script containing "java -jar ../lib/myprogram.jar")
/bin/myprogram.cmd (Windows batch file containing "java -jar ..\lib\myprogram.jar")
/lib/myprogram.jar (the executable jar file containing your compiled code)
/lib/otherjar.jar (other jar files, as necessary)
При такой структуре zip-файла инструкциями по установке становится: «Распакуйте zip-файл; измените каталог на"bin" и запустите "myprogram.wh независимо".