Как разрешить ClassNotFoundException, когда класс есть?

#java #exception #netbeans #compiler-errors

#java #исключение #netbeans #ошибки компилятора

Вопрос:

Вот мой код

 package vista;

public class MyMainClass
{
    public static void main(String[] args) 
    {
        try
        {
            if(1>0) throw new MyException("ERROR");
        }
        catch(MyException err)
        {
            System.out.println(err.toString());
        }
    }
}
 

 package vista;

public class MyException extends Exception
{
    // Constructor.
    public MyException(String errMsg)
    {
        super(errMsg);
    }
}
 

Вывод:

 Error: Unable to initialize main class vista.MyMainClass
Caused by: java.lang.NoClassDefFoundError: vista/MyException
Command execution failed.
 

Оба класса находятся в одной vista папке, и перед выполнением NetBeans распознает это. Как мне это решить?


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

Комментарии:

1. Обычная причина этого — неправильный или неправильно сконфигурированный путь к классу.

2. Помимо вашей реальной проблемы, почему вы выбрасываете исключение, а затем сразу же его перехватываете? Исключение не требуется.

3. @AndyTurner О, я прокомментировал остальную часть кода, чтобы просто сосредоточиться на том, что вызвало проблему.

4. @Leo Я ценю, что вы нашли время для этого. Многие люди не будут сокращать свой код до минимального примера для нас. Наличие чего-то короткого и понятного действительно полезно как для отвечающих, так и для будущих посетителей.

Ответ №1:

Я думаю, вы не добавили пакет Vista во время компиляции. Это будет похоже:

 $pwd
$path/vista
$cd ..
$javac vista/MyMainClass.java
$java vista.MyMainClass
 vista.MyException: ERROR