Создание файла .jar - PullRequest
       7

Создание файла .jar

0 голосов
/ 23 декабря 2011

Я создаю файл .jar с графическим интерфейсом:

jar cmf mainClass patcherFull.jar pack

Я не получаю ошибок с помощью команды создания, описанной выше, но затем запуск файла .jar ничего не делает в Windows, и запуск его с использованием самого java выдает:

java -jar patcherFull.jar
java.lang.NoClassDefFoundError: patcherFull
Caused by: java.lang.ClassNotFoundException: patcherFull
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: patcherFull. Program will exit.
Exception in thread "main"

Это моя структура кода:

public class patcherFull extends JPanel implements ActionListener, PropertyChangeListener
{

  private JProgressBar progressBar;
  private JButton startButton, closeButton;
  private JLabel status;
  private Task task;

    class Task extends SwingWorker<Void, Void> {
        @Override
        public Void doInBackground()
        {
        }

        @Override
        public void done()
        {
        }
    }

    public patcherFull()
    {
  }

    public void actionPerformed(ActionEvent evt)
    {
    }

    public void propertyChange(PropertyChangeEvent evt)
    {
    }

    private static void createAndShowGUI()
    {
    }

    public static void main(String[] args)
    {
        javax.swing.SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
          }
        });
    }
}

Это мой файл манифеста mainClass (с новой строкой в ​​конце):

Main-Class: patcherFull

Что-то не так в моей структуре кода? И как FYI, папка «pack» содержит 3 сгенерированных файла .class, 2 зависимости (jpg и exe), а затем файл «patcherFull.java».

Вот еще немного информации о том, что находится внутри .jar:

$ jar tf patcherFull.jar
META-INF/
META-INF/MANIFEST.MF
pack/
pack/banner.jpg
pack/patcherFull$1.class
pack/patcherFull$Task.class
pack/patcherFull.class
pack/patcherFull.java
pack/wget.exe

1 Ответ

2 голосов
/ 23 декабря 2011

Ваш основной класс должен быть pack.patcherFull, а не patcherFull, чтобы соответствовать вашей структуре в jar-файле.

Также обратите внимание, что согласно соглашению оно должно быть pack.PatcherFull.

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