Как конвертировать Java программу в jar? - PullRequest
7 голосов
/ 22 мая 2010

Небольшая помощь от всех вас ... Я пытался преобразовать простую Java-программу в jar, но, похоже, ничего не произошло.У меня есть 2 файла: Tester.java, Tester.Class.Затем я использовал эту командную строку:

jar -cvf Tester.jar Tester.class

Файл .jar создан, но, похоже, ничегоРабота.Что я пропустил?

Ответы [ 5 ]

13 голосов
/ 22 мая 2010

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

java -cp Tester.jar your.package.Main

Более удобный способ выполнить банку - это сделать

java -jar Tester.jar

Однако для этого необходимо указать основной класс в файле манифеста, который должен быть включен в jar-файл:

  • Помещенный

    Manifest-Version: 1.2
    Main-Class: your.package.Main
    

    в manifest.txt

  • И чтобы создать банку:

    jar cvfm Tester.jar manifest.txt Tester.class
    
6 голосов
/ 22 мая 2010

Как прокомментировал Мэттью Флэшен ответил , вам понадобится файл манифеста в вашем банке, который должен содержать заголовок 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).

3 голосов
/ 22 мая 2010

Если вы хотите опоздать, то:

java -jar Tester.jar

вы должны прочитать этот учебный урок .

2 голосов
/ 22 мая 2010

Я предлагаю использовать некоторые IDE, такие как Netbeans, Eclipse, IntelliJ IDEA, и сосредоточиться на программировании (собирать программу по клику).

2 голосов
/ 22 мая 2010

Ваша команда создаст файл jar. Вам может потребоваться установить заголовок манифеста Main-Class .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...