Ошибка «Не удалось найти основной класс» при запуске jar-файла, экспортированного Eclipse

У меня есть java-проект, который отлично работает при запуске изнутри. Затмение. Когда я пытаюсь экспортировать его в "JAR-файл" или "Runnable JAR-файл", создается файл .jar, но когда я дважды щелкаю по нему, чтобы попытаться запустить программа выдает мне сообщение об ошибке

"Could not find the main class: package.MainClassName. Program will exit."

Как я уже упоминал, я пытался экспортировать в обе опции JAR, я указал правильный класс, в котором находится основной метод, и когда я просматриваю фактические файлы в .jar С файлом вроде бы все в порядке -- манифест выглядит примерно так:

Manifest-Version: 1.0
Main-Class: package.MainClassName
(blank line)

и находится в папке META-INF.Есть папка с именем моего пакета, в которой находятся все файлы .class, включая класс, содержащий метод main. Несколько изображений и текстовых файлов, которые я использую, также появляются в файле jar.

На самом деле программа не представляет собой ничего сложного — это простая игра «змейка» с использованием Swing (плюс весь код работает при запуске из Eclipse).

Есть идеи, что вызывает эту ошибку и как ее исправить? Дайте мне знать, если есть какая-либо другая информация, которую я должен предоставить.

27
задан scaevity 8 March 2012 в 06:10
поделиться

3 ответа

Убедитесь, что вы можете запустить свое приложение следующим образом:

java -cp myjarfile.jar snake.Controller

Я только что прочитал , когда дважды щелкнул по нему - это звучит как проблема конфигурации вашей операционной система. Вы дважды щелкаете файл в окне проводника Windows? Попробуйте запустить его из консоли / терминала с помощью команды

java -jar myjarfile.jar

Дальнейшее чтение


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

24
ответ дан 28 November 2019 в 05:20
поделиться

Вы пытались создать файл .jar вручную вместо использования Eclipse. Попробуйте следующие шаги, надеемся, что это может помочь:

Учитывая, что ваша структура каталогов выглядит следующим образом:

 TicTacToe(Your Project Name I mean)
 |              |                  |
src            bin             manifest.txt
             |    |
           icons  tictactoe

Теперь предположим, что мой основной класс - BeginGame внутри пакета tictactoe, поэтому я напишу в моем файле manifest.txt эту вещь:

Main-Class: tictactoe.BeginGame

Запомните пробел между двоеточиями : и именем пакета, т.е. tictactoe, и сразу после BeginGame нажмите Enter и сохраните файл.

Теперь в командной строке перейдите в папку bin, я описываю свою сторону следующим образом:

C:\Mine\Eclipse\TicTacToe\bin>jar -cfm ..\tictactoe.jar ..\manifest.txt tictactoe icons
  • Здесь первый аргумент, т. Е. ..\tictactoe.jar, используется, чтобы сказать, что создать tictactoe.jar на один уровень вверх, то есть внутри TicTacToe Folder.
  • Второй аргумент ..\manifest.txt означает, что файл manifest.txt расположен на один уровень выше, то есть внутри TicTacToe Folder.
  • Третий и четвертый аргументы tictactoe и icons означают, что обе эти папки добавляются в файл .jar, поскольку они помещены в папку bin, поэтому они используются как есть. Теперь нажмите Enter.

Теперь попробуйте запустить файл .jar, созданный таким образом внутри Project Folder (в моем случае папка TicTacToe).

Надеюсь, это сработает.

5
ответ дан 28 November 2019 в 05:20
поделиться

Для пользователей NetBeans, которые сталкиваются с этой проблемой, просто:

1. Перейдите в свой проект, щелкните правой кнопкой мыши и выберите «Свойства»

2. Нажмите «Запустить», а также щелкните браузер.

3.Выберите кадры, которые хотите отображать в первый раз.

0
ответ дан 28 November 2019 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: