Я хочу запустить конструктор Main.class в пакете Test2, который находится в папке C: \ classes \Почему мой класс не загружается через внешний загрузчик классов?
Это код, который я использую. Он бросает исключение класса, не найденное, когда пытается превратить его в класс. И затем, когда это часть объекта класса, будет ли автоматически запускаться конструктор или мне нужно каким-то образом его привести? Test2 вводится в этот код как текст.
if (Main.os.equals("Windows"))
{
String path = "C:\\classes\\";
}
else
{
String path = "~/classes/";
}
File file = new File(path);
try
{
URL url = file.toURI().toURL();
URL[] urls = new URL[]{url};
Main.print("Stage 1");
ClassLoader cl = new URLClassLoader(urls);
Main.print("Stage 2");
Class cls = cl.loadClass(text + ".Main");
Main.print(text + " was loaded into memory.");
close();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
Не могли бы вы высказать полный код обоих классов? – Muel
Это единственная часть, которая относится к вопросу ... Этот код находится в коде ActionListener для диалогового окна, которое передает его переменному тексту. Другой класс просто делает hello world println в конструкторе. – Paulywog
Это не совсем так. Нам также нужны объявления пакетов и классов для Main. Это важно. Кроме того, нам нужно значение 'text'. Мы можем сделать вывод из вашего комментария, что текст «Test2», но мы не знаем! – Muel