Как вызвать класс в Java? [требует правки]

302
02 августа 2017, 19:59

Всем привет!Мне нужно сделать чтоб при выполнении определённого условия,загружался("включался" определённый java файл(класс)). Как можно реализовать "включение нужного java файла?

Answer 1

Если вы хотите динамически загружать код в ClassLoader, то нужно скомпилировать код из .java в .class файл. Потом его можно загрузить аналогично сниппету ниже:

File file = new File("c:\\myclasses\\");
try {
    URL url = file.toURL();
    URL[] urls = new URL[]{url};
    ClassLoader cl = new URLClassLoader(urls);
    Class cls = cl.loadClass("com.mycompany.MyClass");
} catch (MalformedURLException e) {
} catch (ClassNotFoundException e) {
}

Если же вы хотите динамически компилировать отдельный .jar и запускать его параллельно, то можно использовать что-то вроде:

final Runtime rt = Runtime.getRuntime();
rt.exec("javac source_2.java");
rt.exec("jar -cf jar_2.jar myApp");
rt.exec("java -jar jar_2.jar");

Чтобы сперва скомпилировать второй .jar, а затем запустить его

READ ALSO
Можно ли изменить направление recyclerview?

Можно ли изменить направление recyclerview?

Стандартное направление recyclerview это сверху-внизТ

267
Почему не открывается JDBC postgresql connection?

Почему не открывается JDBC postgresql connection?

Приложение развернуто на HEROKUТам добавил в окружение HEROKU-POSTGRESQL версия 9

430
Как делать вставку JSON данных в Postgres?

Как делать вставку JSON данных в Postgres?

Есть объект Phrase который имеет поле представленное как JSON объект, но при попытке записать его в колонку с соответствующим типом падает:

407