Файл Java JAR... не удалось запустить

Я пытаюсь загрузить файл http://algs4.cs.princeton.edu/code/algs4.jar и запустить его с помощью Jar Launcher (приложение по умолчанию). Однако я получаю следующее:

введите описание изображения здесь

Следуя https://discussions.apple.com/thread/4827576?tstart=0 , я также пытался использовать утилиту архивирования; это, кажется, создает algs4.jar.cpgzфайл, но я не уверен, что с ним делать. Как я могу открыть файл JAR?

Какие сообщения об ошибках вы видели в консоли?

Ответы (2)

Несмотря на то, что в сообщении об ошибке говорится, что нужно проверить консоль, я не нашел там ничего полезного. Однако, если вы попытаетесь запустить файл JAR из терминала, вы получите эту ошибку:

no main manifest attribute, in ./algs4.jar

Эта ошибка означает, что в файле JAR отсутствует параметр «Main-Class» в файле MANIFEST.MF. Параметр Main-Class сообщает среде выполнения Java, какой класс является точкой входа , т. е. какой класс запускать первым при запуске.

Вы можете добавить этот параметр с помощью Терминала. Прежде всего загрузите файл JAR с веб-сайта Принстона, затем выполните следующую команду (при условии, что файл JAR находится в папке «Загрузки»):

jar ufe ~/Downloads/algs4.jar TestAlgs4

Эта команда обновляет файл MANIFEST.MF в JAR. Как только это будет сделано, файл JAR должен успешно запуститься из Finder или Terminal.

Скриншот запущенного файла algs4.jar

Сказав все это, вы получите ошибку, только если попытаетесь запустить JAR как исполняемый файл. Я не думаю, что ты должен это делать. Вы должны просто поместить файл JAR туда, где среда выполнения Java сможет его найти, а затем ссылаться на него в коде, который вы пишете, выполняя упражнения в этой книге. Здесь есть четкие инструкции о том, что вы должны делать с файлом JAR: https://algs4.cs.princeton.edu/code/

Этот последний абзац является реальным ответом на эту проблему XY, я рад, что OP предоставил справочную информацию, чтобы иметь возможность исследовать это должным образом, и спасибо за возрождение этого вопроса!
Что мне нужно ввести для других файлов jar? Я получаю "не удалось найти или загрузить основной класс ufe"
Скорее всего, это означает, что файл JAR является библиотекой и не предназначен для прямого запуска.

Как говорится в сообщении об ошибке, вы можете проверить консоль (/Applications/Utilities/Console) на наличие журналов ошибок. Вы также можете открыть окно терминала и запустить банку из командной строки, что должно привести к выводу любых ошибок в терминал. Если ваша банка находится в папке загрузок, вы должны запустить:

java -jar ~/Downloads/algs4.jar

Если у вас есть ошибка, если вы не можете ее понять, обновите свой вопрос, и мы можем попытаться предоставить дополнительную информацию.