Я пытаюсь загрузить объект класса из некоторого скомпилированного файла класса, сидящего в моем рабочем каталоге.Загрузка внешних файлов классов без учета классов или пакетов классов
Я кормлю двумя аргументами в основной программе, которая использует URLClassLoader
, чтобы получить экземпляр класса из скомпилированного файла TheClassToLoad.class
.
у меня есть, в Main программы загрузки классов: (args[0] is for something unrelated)
String classFile_FilePath = args[1];
String className = args[2];
URL classUrl = new URL(classFile_FilePath);
URLClassLoader ucl = new URLClassLoader(new URL[]{classUrl});
При выполнении этой программы из командной строки в каталоге проекта:
Me:ClassLoadingProgramRootDir Me$ java com.company.Main argZero file:///Users/Me/Desktop/ TheClassToLoad.class
Я считаю поднятое исключение:
Исключение в теме "main" java.la ng.ClassNotFoundException: TheClassToLoad.class
Итак, есть файл TheClassToLoad.class
в Desktop/
еще URLClassLoader
вызывает исключение без предоставления деталей мне нужно отлаживать ситуацию.
Я новичок в Java и знаю, что пути классов, такие как com.company.Class
, часто необходимы для ссылки на истинное имя класса класса, основанное на структуре каталога пакетов. Однако в этом случае я просто попросил, чтобы URLClassLoader
предоставил мне экземпляр объекта класса для произвольного скомпилированного файла класса, сидящего где-то на машине.
Если ваш класс имеет оператор «package», вам необходимо соблюдать его при попытке загрузить и использовать его. – bmargulies