Развертывание муравья.Баночка не может найти основной класс - PullRequest
0 голосов
/ 17 августа 2011

Создан простой тестовый Java-проект, чтобы узнать, как использовать Ant для развертывания приложения. Проект Java использует Swing для создания JFrame и один JLabel, чтобы сказать «Hello World». Это выглядит так:

package com.mytest;
import javax.swing.*;        

public class home {
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("HelloWorldSwing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JLabel label = new JLabel("Hello World");
        frame.getContentPane().add(label);
        frame.pack();
        frame.setVisible(true);
    }
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

Затем я создал файл build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project default="mytest" basedir=".">
  <target name ="mytest" description="Create a jar for the Test project">
    <echo message="starting MyTest jar creation..." />
    <jar jarfile="mytest.jar" includes="*.class" basedir="bin">
        <manifest>
            <attribute name="Created-By" value="1.6.0_04 (Sun Microsystems Inc.)" />
            <attribute name="Built-By" value="Me" />
            <attribute name="Implementation-Version" value="1.0" />
            <attribute name="Main-Class" value="com.mytest.home" />
        </manifest>
    </jar>
    <echo message="MyTest jar created..." />
  </target>
</project>

Проблема в том, что после запуска развертывания через Eclipse создается jar, но я не могу его запустить. Я получаю сообщение: Не удалось найти основной класс: com.mytest.home ?

Что не так? Это похоже на простой прямой процесс. Я что-то упустил?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Я немного сбит с толку всем этим. Насколько я знаю, Eclipse строит проект на ходу, когда вы набираете текст, а затем, когда вы решите развернуть, ваш сценарий развертывания просто должен упаковать все так, как вы указали в сценарии. Он в основном копирует файлы классов из вашего проекта в файл jar.

Для моей конкретной проблемы оказалось, что мне не хватает элемента , который является дочерним по отношению к элементу , поэтому мой xml-скрипт теперь выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<project default="mytest" basedir=".">
  <target name ="mytest" description="Create a jar for the Test project">
    <echo message="starting MyTest jar creation..." />
    <jar jarfile="mytest.jar" includes="*.class" basedir=".">
        <fileset dir="./bin" />
        <manifest>
            <attribute name="Created-By" value="..." />
            <attribute name="Built-By" value="Me" />
            <attribute name="Implementation-Version" value="1.0" />
            <attribute name="Main-Class" value="com.mytest.home" />
        </manifest>
    </jar>
    <echo message="MyTest jar created..." />
  </target>
</project>

Я попытался запустить файл JAR, и это сработало.

0 голосов
/ 17 августа 2011

Я не могу найти задачу компиляции в вашем скрипте ant.Как генерируются файлы классов, если у вас нет задачи компиляции?

Также просто разархивируйте файл jar и посмотрите, существует ли класс на самом деле?

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