Класс не найден даже при указании полного пути к пакету - PullRequest
2 голосов
/ 12 декабря 2011

Я пытаюсь использовать сторонний пакет (назовите его 'foo.bar'). Он находится в файле jar в текущем каталоге (foo.bar.jar). Я пытаюсь запустить следующую супер базовую программу в стиле "hello-world":

package foo.bar.bla;
import foo.bar.*;
import foo.bar.somethingelse.SomeException;

public class HelloWorld implements SomethingInFooBar {

    public static void main(String[] args) throws SomeException {
        System.out.println("Hello World!");
    }
}

Он прекрасно компилируется, когда я использую javac -cp foo.bar.jar HelloWorld.java.

Но когда я пытаюсь запустить его (используя java HelloWorld), я всегда получаю ошибку NoClassDefFoundError (wrong name) вместе с / -разделенным путем к пакету (some/path/like/this/HelloWorld) того, где класс якобы лежит. Но когда я пытаюсь запустить его с полным путем (как уже упоминалось в других вопросах и на других сайтах, посвященных этой проблеме), он все равно не работает (с помощью команды java path.it.gave.me.HelloWorld).

Спасибо за понимание этой проблемы n00b. Я должен перестать так сильно полагаться на Eclipse!

Ответы [ 4 ]

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

Обычно это происходит из-за того, что ваш classpath не настроен должным образом. Попробуйте добавить classpath к вызову java, а также к вызову javac, например, java -cp foo.bar.jar path.to.HelloWorld.

1 голос
/ 12 декабря 2011

Иногда источник класса также не найден из-за того, что в Java не указан правильный путь к папке источника класса BuildPath -> Source из-за отсутствия файлов классов, когда это требуется для вашего проекта.

Вот почему это также возможно.

0 голосов
/ 12 декабря 2011
java -cp foo.bar.jar foo.bar.bla.HelloWorld
0 голосов
/ 12 декабря 2011

попробуйте эту строку в терминале

set classpath = .

...