Как прокомментировал Мэттью Флэшен ответил , вам понадобится файл манифеста в вашем банке, который должен содержать заголовок Main-Class
, указывающий, какой из класс в банке для выполнения. Ответ от aioobe прекрасно иллюстрирует самый простой способ сделать это.
Но вместо того, чтобы делать это всегда "вручную", я бы рекомендовал вам взглянуть на инструмент сборки , такой как Apache Ant (или Maven , но это, вероятно, немного сложнее для начала), которые очень часто используются для автоматизации такого рода последовательностей сборки.
С помощью Ant вы создали бы «файл сборки» (чаще всего называемый build.xml
), например:
<project name="Tester">
<target name="build"
description="Compiles the code and packages it in a jar.">
<javac srcdir="src" destdir="classes" source="1.6" target="1.6"/>
<jar destfile="Tester.jar">
<fileset dir="classes"/>
<manifest>
<attribute name="Main-Class" value="com.example.Tester"/>
</manifest>
</jar>
</target>
</project>
Теперь вызов ant build
скомпилирует ваш код и упакует его в «Tester.jar», который также будет содержать правильный тип заголовка манифеста, так что вы можете запустить его с java -jar Tester.jar
. (Обратите внимание, что в этом примере предполагается, что ваши исходные файлы находятся в каталоге «src» относительно места, где вы запускаете команду. Конечно, вам также необходимо установить Ant.)
Если вы решите попробовать Ant, его официальное руководство будет очень полезно (особенно список "заданий" Ant, который, например, показывает, какие опции вы можете дать для конкретных задач, таких как javac
или jar
).