Ответ 1
Хорошо, поэтому я, наконец, получил его на работу. Если я использую JRE 6 вместо 7, все отлично работает. Не знаю, почему, но он работает.
У меня есть проект java, который отлично работает при запуске его из Eclipse. Когда я пытаюсь экспортировать его либо в "JAR file"
, либо "Runnable JAR file"
, создается файл .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, включая класс, который содержит основной метод. Несколько файлов изображений и текстовых файлов, которые я использую, также отображаются в файле jar.
Реальная программа не слишком сложна - это простая игра "змейка" с использованием Swing (плюс код работает при запуске из Eclipse).
Любые идеи, что вызывает эту ошибку, и как я могу ее исправить? Сообщите мне, есть ли какая-либо другая информация, которую я должен предоставить.
Хорошо, поэтому я, наконец, получил его на работу. Если я использую JRE 6 вместо 7, все отлично работает. Не знаю, почему, но он работает.
Убедитесь, что вы можете запустить приложение следующим образом:
java -cp myjarfile.jar snake.Controller
Я просто читаю, когда я дважды нажимаю на него - это звучит как проблема с конфигурацией вашей операционной системы. Вы дважды щелкаете файл в окне проводника Windows? Попробуйте запустить его с консоли/терминала с помощью команды
java -jar myjarfile.jar
Дополнительная литература
манифест должен заканчиваться новой строкой. Проверьте свой файл, отсутствие новой строки вызовет проблемы.
Если бы вы попытались создать файл .jar вручную вместо использования Eclipse. Выполните следующие шаги, надеюсь, что это может помочь:
Учитывая, что ваша структура каталогов выглядит так:
TicTacToe(Your Project Name I mean)
| | |
src bin manifest.txt
| |
icons tictactoe
Теперь предположим, что мой основной класс BeginGame
внутри пакета tictactoe
, поэтому я напишу внутри файла manifest.txt эту вещь:
Main-Class: tictactoe.BeginGame
Помните пробел между двоеточиями :
и именем пакета i.e. 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
Folder, поэтому они используются как есть. Теперь нажмите Enter.Теперь попробуйте запустить файл .jar, созданный внутри Project Folder
(папка TicTacToe, в моем случае).
Надеюсь, это сработает.
Запустите его так же, как в командной строке:
java -jar /path/to/your/jar/jarFile.jar
Вы переименовали свой проект/основной класс (например, через рефакторинг)? Если да, то ваша Конфигурация запуска может быть настроена некорректно (например, ссылаясь на основной класс старый или конфигурацию). Несмотря на то, что имя проекта появляется в диалоговом окне "экспортный доступный баннер", более тщательный осмотр может выявить непревзойденное имя основного класса.
Перейдите в раздел "Свойства- > Параметры запуска/отладки" вашего проекта и убедитесь, что ваша конфигурация запуска (то же самое используется для экспорта runnable jar) установлена на правильное имя проекта И вашего основного class установлен на name.space.of.your.project/YouMainClass
.
Щелкните правой кнопкой мыши по проекту. Перейдите к свойствам. Нажмите "Run/Debug Settings". Теперь удалите конфигурацию запуска вашего основного класса, которую вы пытаетесь запустить. Теперь, когда вы снова нажмете пробег, все будет работать нормально.
Для пользователя netbeans, который имеет эту проблему, просто:
1.Выполните проект и щелкните правой кнопкой мыши и выберите свойства
2. Нажмите "Запустить", а затем нажмите "Браузер".
3. Выберите нужные вам кадры.