• Какая магия стоит за этим методом? Что такое clojure.lang.Script?
clojure.lang.Script - это класс с методом main, который запускает исполняемый файл jar.
• Можно ли вызывать antlr таким же образом? Если так, какое имя следует использовать (что-то вроде clojure.lang.Script)?
Antlr jar можно назвать так же. Вы должны знать имя основного класса (которое находится в файле MANIFEST.MF в банке).
• Как насчет файла jar, созданного на других языках: clojure / scala? Откуда я знаю имя, которое должно называться?
Не знаю ... Наверное, зависит от языка.
• В чем разница между двумя методами? Плюсы и минусы?
Исполняемые файлы jar очень просты для запуска пользователями (особенно в Windows). Просто дважды щелкните файл jar.
• В этом посте мне сказали, что -jar игнорирует все -cp и $ CLASSPATH. Почему это? Есть ли причина для этого?
Без сомнения, ребята из Sun сделали это по соображениям безопасности.
• Мне также сказали, что опция -cp также игнорирует $ CLASSPATH. Почему это? Есть ли для этого веская причина?
Опция -cp переопределяет $ CLASSPATH. Вот и вся цель этой опции.