Подтвердить что ты не робот

Не удалось найти основной класс, программа выйдет

Я сделал исполняемую банку с командной строкой в ​​Windows 7 с помощью

jar cvfm MyJarName.jar manifest.txt *.class

который создал файл .jar. Но когда я пытаюсь открыть его, у меня появляется всплывающее окно, в котором говорится

Could not find the main class: <ClassName>. Program will exit.

Тем не менее, когда я использую

java -jar jarName.jar

в командной строке, он отлично работает. Какая сделка? Я хочу, чтобы иметь возможность просто дважды щелкнуть по нему.

4b9b3361

Ответ 1

Ха, я понял, в чем проблема. Я сделал свою программу, используя jdk1.7, но у меня был установлен jre6. Я пошел и обновился до jre7, и теперь он отлично работает:)

java -jar jarname.jar
В командной строке работала строка

потому что мой путь Java был установлен в папку jdk.

Ответ 2

Если вы используете JDK 1.6 или выше, вы можете переопределить атрибут манифеста с помощью флага e инструмента Jar. (Чтение - Установка точки входа с помощью инструмента JAR):

Пример:

package pack;

public class Test
{
  public static void main(String []args)  
   {
     System.out.println("Hello World");
    }
}

Скомпилируйте и запустите инструмент Jar,

c:\>jar cfe app.jar pack.Test pack/Test.class

Вызвать приложение

c:>java -jar app.jar

Ответ 3

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

Ответ 4

Извлеките банку и сравните содержимое манифеста внутри банки с вашим внешним manifest.txt. Вполне возможно, что вы найдете проблему.

Ответ 5

У меня была та же проблема. То, что я сделал, это щелкнуть правой кнопкой мыши свойства project- > и из выпадающего списка "Выбрать/Двоичный формат", я выбрал JDK 6. Затем я очистил и построил, а теперь, когда я нажимаю Jar, он работает отлично.

Ответ 6

Если вы создадите исходные файлы с более низкой версией Java (пример Java1.5) и попытаетесь запустить эту программу/приложение с более высокой версией Java (пример java 1.6), вы получите эту проблему. для лучшего объяснения см. эту ссылку. нажмите здесь

Ответ 7

Посмотрите, как это делается (работает на моей машине):

пусть файл будет x.java

  • скомпилировать файл javac x.java
  • jar cfe k.jar x x.class//k.jar - файл jar
  • java -jar k.jar