У меня есть 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).
Есть идеи, что вызывает эту ошибку и как ее исправить? Дайте мне знать, если есть какая-либо другая информация, которую я должен предоставить.
Убедитесь, что вы можете запустить свое приложение следующим образом:
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
Запомните пробел между двоеточиями :
и именем пакета, т.е. 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).
Надеюсь, это сработает.
Для пользователей NetBeans, которые сталкиваются с этой проблемой, просто:
1. Перейдите в свой проект, щелкните правой кнопкой мыши и выберите «Свойства»
2. Нажмите «Запустить», а также щелкните браузер.
3.Выберите кадры, которые хотите отображать в первый раз.