«Не удалось найти основной класс: XX. Программа выйдет». - PullRequest
13 голосов
/ 13 сентября 2009

Мне удалось запустить файл JAR из командной строки, но он всегда дает мне ответ

Не удалось найти основной класс: XX. Программа закроется.

Пожалуйста, помогите мне, спасибо.

Ответы [ 2 ]

19 голосов
/ 13 сентября 2009

См. Настройка точки входа в приложение

Если у вас есть приложение, связанное в JAR-файле, вам нужно каким-то образом указать, какой класс в JAR-файле является точкой входа вашего приложения. Вы предоставляете эту информацию с заголовком Main-Class в манифесте, который имеет общую форму:

Main-Class: classname

Значение classname - это имя класса, который является точкой входа вашего приложения.

Напомним, что точка входа - это класс, имеющий метод с сигнатурой

 public static void main(String[] args).

После того, как вы установили заголовок Main-Class в манифесте, вы затем запускаете JAR-файл, используя следующую форму команды java:

java -jar JAR-name

Выполнен основной метод класса, указанного в заголовке Main-Class.


Сначала мы создаем текстовый файл с именем Manifest.txt со следующим содержимым:

Main-Class: MyPackage.MyClass

Предупреждение : текстовый файл должен заканчиваться новой строкой или переводом каретки . Последняя строка не будет проанализирована должным образом, если она не заканчивается новой строкой или возвратом каретки.

Затем мы создаем файл JAR с именем MyJar.jar, введя следующую команду:

jar cfm MyJar.jar Manifest.txt MyPackage/*.class

Это создает файл JAR с манифестом со следующим содержимым:

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass

Когда вы запускаете файл JAR с помощью следующей команды, выполняется основной метод MyClass:

java -jar MyJar.jar
0 голосов
/ 12 июля 2017

У меня была такая же ошибка. Проблема заключалась в том, что Windows 10 внезапно решила установить папку моей рабочей области только для чтения.

После снятия галочки только для чтения в настройках папки проблема была решена.

...