Я просмотрел Google и StackOverflow для разрешения и не нашел их до сих пор. Я пытаюсь создать простой исполняемый пакет .jar, используя файл манифеста из командной строки Windows, используя Java 1.8. Соответствующие файлы:Использование jar.exe с файлом манифеста для исполняемого файла - «нет основного атрибута манифеста»
Turtlephilia.java:
public class Turtlephilia {
public static void main(String[] args) {
System.out.println("i lurrrve turtles");
}
}
manifest.mf:
Main-Class: Turtlephilia
do.bat:
javac Turtlephilia.java
jar cvmf manifest.mf Turtlephilia.jar Turtlephilia.class
java -jar Turtlephilia.jar
Когда я исполняю do.bat компилирует и архивы успешно, но после запуска файла jar он генерирует эту ошибку:
no main manifest attribute, in Turtlephilia.jar
Примечание: Я на самом деле в состоянии успешно запустить его с помощью этой команды:
java -cp Turtlephilia.jar Turtlephilia
Но мне нужно, чтобы быть исполняемым банку.
Что я делаю неправильно? Как трудно это может быть!?
Вам удалось создать манифест манифест с помощью Блокнота? Я подозреваю, что в начале есть невидимый символ [byte-order mark] (https://en.wikipedia.org/wiki/Byte_order_mark) (BOM), что означает, что линия не технически начинается с 'Main-Class'. Решение. Добавьте пустую строку над 'Main-Class'. – VGR
Я редактировал в блокноте, но после добавления пустой строки я получаю ту же проблему. Кстати, я заметил, что если я перетащил .jar в Netbeans и посмотрю, то в пакете под META-INF \ MANIFEST.ms он имеет манифест по умолчанию с Manifest-Version: 1.0, Created-By: ... ., без моей основной линии. Является ли это просто игнорированием моего файла манифеста вообще? –
О, человек. Вы были на правильном пути. Основной класс был последней строкой в файле манифеста, и после него потребовался возврат каретки. –