2016-02-18 4 views
0

У меня есть приложение, входящее в файл jar, который мне нужно запустить в среде Linux, но я не могу понять, какой класс в этом файле JAR является точкой входа приложения.Как найти класс манифеста файла jar?

Я попытался запустить его на Windows, CMD, как показано ниже:

java -jar build21-jdk13.jar 

Он поднял следующую ошибку:

no main manifest attribute, in build21-jdk13.jar 

Любая помощь будет высоко ценится.

+2

_MANIFEST.MF_ файл должен находиться в каталоге _META-inf_ файла банки. – Berger

+0

и JAR-файл - это просто zip-файл, поэтому его можно просмотреть или распаковать с помощью стандартных инструментов архивации (в некоторых случаях вам может потребоваться переименовать его, чтобы изменить расширение файла на .zip) – DNA

+0

Я распаковал файл, также проверил ** MANIFEST.MF ** и существует. – Eng7

ответ

1

Для банка, чтобы иметь возможность работать с командой java -jar, файл YourJar.jar/META-INF/MANIFEST.MF должен быть как:

Manifest-Version: 1.0 
Class-Path: . 
Main-Class: the.package.ClassWithMainMethod 

В вашем случае Main-Class свойство отсутствует.
Альтернативы запустить банку проходящей главный класса в качестве аргумента:

java -jar build21-jdk13.jar the.package.ClassWithMainMethod 
+0

Я проверил содержимое файла и пропустил * Класс-путь * и * Main-Class *, есть ли способ узнать, какой класс? Отмечая, что это открытый код. – Eng7

+1

Поиск класса с использованием метода 'main'. – elias

Смежные вопросы