Если вы просто хотите запустить его, вы можете запустить процесс Java, используя
Runtime.exec или ProcessBuilder . Это создаст отдельный Java-процесс для запуска вашей Java-программы. Это более вероятно, что вы хотите. Вы можете по существу сделать Equivelant из:
>java someClass
из вашего приложения. Эта ссылка может помочь.
Если вы действительно хотите загрузить файл класса и использовать его в своем текущем приложении, я думаю, что-то вроде this или динамической загрузки Java-классов должно помочь. В основном (прямо по ссылке, слегка изменено):
public class MainClass {
public static void main(String[] args){
ClassLoader classLoader = MainClass.class.getClassLoader();
try {
Class aClass = classLoader.loadClass("MyClass");
System.out.println("aClass.getName() = " + aClass.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
После загрузки класса у вас есть объект Class , и вы можете создать экземпляр класса, представленного aClass
, вызвав aClass.newInstance()
, что похоже на
MyClass newObj = new MyClass()
Или вы можете использовать любой другой метод, который предоставляет объект Class
.
Как указал davmac, приведенный выше пример кода предполагает, что загружаемый код находится в пути к классам ваших приложений. Если файлы классов, которые вы хотите запустить, не находятся в вашем пути к классам, вы можете посмотреть URLClassLoader