Ошибка при запуске jar из командной строки - PullRequest
0 голосов
/ 20 февраля 2011

Я использую IDE NetBeans для кодирования Java-программы.Когда я запускаю программу из NetBeans, она работает отлично, но когда я запускаю ее из командной строки, я получаю следующее:

Exception in thread "main" java.lang.NoClassDefFoundError: javaapplication/Main
Caused by: java.lang.ClassNotFoundException: javaapplication.Main
        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: javaapplication.Main. Program will exit.

Я использовал другую программу (myEclipse) для сборки программы, но точная вещь произошла, яЯ могу запустить программу только из IDE, а не из командной строки.

Ответы [ 2 ]

2 голосов
/ 20 февраля 2011

Ну, а javaapplication.Main должен быть основным классом?Если нет, то это, вероятно, ошибка в файле манифеста.

Если это = , предназначенный для основного класса, загляните внутрь файла jar (например, распаковав его).Найдите каталог с именем javaapplication, в котором должен быть файл с именем Main.class.

Один из этих двух вещей неправильный, но мы не можем точно сказать, что это отсюда -только ты можешь.

0 голосов
/ 20 февраля 2011

Обычно это происходит, когда ваш файл MANIFEST.MF неверен. Он находится в вашем файле * .jar.

Пример из одного из моих проектов:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 14.2-b01 (Sun Microsystems Inc.)
Class-Path: lib/log4j-1.2.14.jar lib/mysql-connector-java-5.1.11-bin.jar
Main-Class: at.package.to.main.class.MainClass

Для получения дополнительной информации см. Здесь: http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html http://en.wikipedia.org/wiki/Manifest_file

Чтобы изменить файл MANIFEST.MF, следует решить вашу проблему.

РЕДАКТИРОВАТЬ: в ответ на "Джон Скит": я предполагаю, что у вас есть класс с

public static void main(String args[]){ ... }

метод. Если у вас нет основного класса - забудьте мой ответ и создайте основной класс; -)

...