Не удалось найти основной класс - PullRequest
2 голосов
/ 10 февраля 2012

Хорошо, я пытался создать исполняемый файл jar.Он запускается с командой "java -jar bybys.jar", но когда я пытаюсь запустить его с помощью enter, выдает ошибку "Не удалось найти основной класс bardejov.Image. Программа завершится."

Вот манифест:

Manifest-Version: 1.0
Created-By: 1.7.0_02 (Oracle Corporation)
Main-Class: bardejov.Image 

(да, я использовал новую строку)

При компиляции файла JAR я пробовал все возможные комбинации с каталогом, я не знаю, где проблема,Я использовал - C:\Java\2D>jar cfm bybys.jar Manifest.txt bardejov/Image.class bardejov/Board.class bardejov/*jpg

Каталог:

META-INF/
META-INF/MANIFEST.MF
bardejov/Image.class
bardejov/Board.class
bardejov/siknius.jpg

А основной класс:

package bardejov;

import javax.swing.JFrame;


public class Image extends JFrame {

public Image() {

    add(new Board());

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(477, 530);
    setLocationRelativeTo(null);
    setTitle("Siknius");
    setVisible(true);
    setResizable(false);
}

public static void main(String[] args) {
    new Image();
}
}

Как исправить?

ОБНОВЛЕНИЕ

Я исправил это.Проблема была в том, что у меня не было установлено новейшее JRE.

Ответы [ 4 ]

3 голосов
/ 10 февраля 2012

После имени класса в вашем файле Manifest.txt есть дополнительный пробел. На это намекает сообщение об ошибке:

Could not find the main class bardejov.Image .
                                            ^^
1 голос
/ 10 февраля 2012

На самом деле проблема заключается в том, что в банке нет записи для каталога bardejov; он содержит только записи для файлов в каталоге. Вы можете увидеть это в вашем списке; Посмотрите, как есть запись для bardejov. Когда вы создаете JAR-файл, вы должны указать jar включить каталог, а не только файлы в нем:

jar cfm bybys.jar Manifest.txt bardejov
0 голосов
/ 10 февраля 2012

Начиная с Java 6, вы можете указать точку входа с помощью команды jar. Следующая команда должна создать исполняемый файл JAR для вашего приложения:

jar cfe bybys.jar bardejov.Image bardejov/Image.class bardejov/Board.class bardejov/*jpg

Вам не нужно писать и добавлять собственный манифест.

Ресурс

Обновление

На моей машине работает:

создать исходный файл Java на example/Hello.java:

package example;
public class Hello {
  public static void main(String[] args) {
    System.out.println("Hello world!");
  }
}

скомпилировать с помощью команды

javac example/Hello.java

баночка с командой

jar cfe example.jar example.Hello example/*.class

выполнить с помощью команды

java -jar example.jar

Выход

Hello world!

Update2

Теперь это похоже на проблему конфигурации. Код и банка, очевидно, верны.

Для быстрого исправления / workaroud: вместо непосредственного запуска jar напишите короткий пакетный файл или файл сценария оболочки, который просто выполняет команду java -jar ....

0 голосов
/ 10 февраля 2012

откройте приглашение cmd и введите

set JAVA_HOME=c:\PATH\TO\JAVA_DIRECTORY
set CLASSPATH=.;%JAVA_HOME%\bin;%JAVA_HOME%\lib

и убедитесь, что эти переменные также включены в переменную окружения PATH.

Перейти к переменным окружения в Win7 можно, перейдя в ControlПанель -> Система -> Дополнительные параметры системы -> вкладка Дополнительно -> Переменные среды.

...