Я давний парень по Java и знаю, что способ запустить JAR с основным классом, на который есть ссылка в файле MANIFEST.MF
внутри Jar, очень прост:
java -jar theJar.jar
Я использовал это для запуска сервера Fabric3 (содержится в bin/server.jar
в его стандартном выпуске).Я заметил, что когда я распаковал его из дистрибутива дистрибутива, он был помечен как исполняемый.По какой-то причине я попытался
./server.jar
из моей командной строки bash
(bash
версия 4.1.5 в Ubuntu 10.10), и вот, сервер запустилсякак будто я набрал обычную команду java -jar ...
.JAR структурирован как обычный JAR;Я выполнил head
, и в первых нескольких байтах не было команды #!
, поэтому bash
не должен волшебным образом знать, чтобы запустить виртуальную машину Java с ним, верно?Или эта версия bash
расширила способность правильно запускать JAR с правильным манифестом?Пытливые умы хотят знать ...