выпуск
Проблема здесь может быть найдена из следующего сообщения в трассировке стека:
java.lang.ClassNotFoundException: G:\Java\NetBeansProjects\TinyExplorer\build\classes\testAddOn\test.class
Это означает, что код пытается найти имя класса, которое на самом деле является путем к файлу class
. Это неправильное использование метода Class.forName
.
Имя 1015 *, которое принимает метод Class.forName
( ссылка на Java API Спецификация метода ), представляет собой полное имя класса из класс, который должен быть загружен. Например, если мы хотим загрузить класс JPanel
, нам потребуется предоставить "javax.swing.JPanel"
, , а не полный путь к файлу class
.
Решение
Из этого кода видно, что предполагается, что класс, содержащийся в файле class
с полным путем к файловой системе G:\Java\NetBeansProjects\TinyExplorer\build\classes\testAddOn\test.class
, должен быть загружен во время выполнения.
Для этого нужно
- Включить файл
class
в classpath .
- Присвойте полное имя класса классу
Class.forName
, чтобы получить объект Class<?>
.
- Создание объекта
Class<?>
с использованием отражения .
Выполнение (1) будет требоваться для виртуальной машины Java, чтобы иметь возможность найти класс, который должен быть загружен в (2) - файл class
, который не находится в classpath, не собирается быть доступным во время выполнения.
Включение файла в classpath обычно представляет собой конфигурацию компоновки в вашей среде IDE или необходимость указать javac
для добавления пути к classpath .
Точки (2) и (3), по-видимому, уже частично реализованы в данном коде и выглядят так, как будто они движутся в правильном направлении.