it-swarm.com.ru

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

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

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

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

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

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

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

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

23
scaevity

Итак, я наконец-то получил его на работу. Если я использую JRE 6 вместо 7, все работает отлично. Не знаю почему, но это работает.

6
scaevity

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

Java -cp myjarfile.jar snake.Controller

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

Java -jar myjarfile.jar

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


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

19
Andreas_D

Запустите это так в командной строке:

Java -jar /path/to/your/jar/jarFile.jar
5
MobileMon

Если бы вы попытались создать файл .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
nIcE cOw

Вы переименовали свой проект/основной класс (например, через рефакторинг)? Если да, ваша Launch Configuration может быть настроена неправильно (например, ссылка на old main class или конфигурацию). Несмотря на то, что имя проекта отображается в диалоговом окне «Экспортировать исполняемый файл», при более внимательном рассмотрении может быть выявлено несоответствующее имя основного класса.

Перейдите в «Properties-> Run/Debug Settings» вашего проекта и убедитесь, что в конфигурации запуска (то же, что используется для экспорта исполняемого файла jar) задано правильное имя проектаИваш основной класс установлен на name.space.of.your.project/YouMainClass.

1
count0

Я столкнулся с теми же проблемами на днях, и мне потребовались дни, чтобы заставить его работать . Сообщение об ошибке было «Не удалось найти основной класс», но я могу запустить исполняемый файл jar, экспортированный из Eclipse, на других машинах Windows без любая проблема.

Решением было установить как x64, так и x86 версии одной и той же версии JRE. Переменная среды пути была указана на версию x64. Не знаю почему, но у меня это сработало.

0
feng63600

Щелкните правой кнопкой мыши по проекту. Перейти к свойствам. Нажмите на Run/Debug Settings. Теперь удалите конфигурацию запуска вашего основного класса, который вы пытаетесь запустить . Теперь, когда вы нажмете снова запустить, все будет работать нормально.

0
user3374766

Для пользователя netbeans эта проблема проста:

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

2.Нажмите «Выполнить», а также нажмите «Браузер».

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

0
kegs Production