Ошибка при выполнении файла JAR - PullRequest
0 голосов
/ 03 апреля 2012

Я изучал JAR-файлы и хотел попробовать создать и запустить один сам.Я выполнил следующие шаги:

  1. Создал папку проекта с подпапкой 'source' и подпапкой 'classes'
  2. Я написал 2 исходных файла, один с основным методом, которыйсоздает экземпляр другого класса и запускает в нем простой метод.
  3. Скомпилировал их в подпапку 'classes'.Я проверил, будут ли они бежать.Они сделали
  4. Я создал файл manifest.txt, заполнил Main-Class: xxxx и нажал клавишу возврата.Я сохранил это в подпапке исходных файлов
  5. Создал файл jar в подпапке классов, написав

    jar -cvmf manifest.txt zzz.jar * .class

  6. Попытка выполнить файл JAR, набрав

    java -jar zzz.jar

Это дает исключение ClassNotFound.Если я пытаюсь выполнить jar, дважды щелкнув по нему в Windows, я получаю сообщение об ошибке: «Не удалось найти основной класс xxxx»

Я дважды проверил написание класса внутри файла манифеста, и этоправильно.

Возможно, важно: я должен скомпилировать свои программы, используя java -cp.xyz, так как есть проблема с моим classpath.Значит ли это, что мне нужно выполнять jars по-другому?Я попробовал Java-CP.-jar zzz.jar, но закончилось тем же исключением.

Редактировать: я начал с нуля, и теперь он работает (с базовой командой -jar zzz.jar).Расстраиваюсь, что не знаю, что я делаю неправильно, но рад, что это работает!

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Разве номер 5. не должен запускаться в подпапке классов, где находятся все ваши файлы классов?И если ваши классы находятся в пакетах, какими они и должны быть, вы, вероятно, захотите использовать * вместо * .class ..?

Чтобы проверить, что содержит ваш jar-файл, вы можете запустить:

jar tf zzz.jar
1 голос
/ 03 апреля 2012

Возможно, вам придется указать полный путь к файлу .class, который вы хотите выполнить после classpath.то есть java -cp xxx.jar classes.mainProgram.class.Где classes - это имя папки, в которой находятся ваши файлы классов.

...