Добавить и вызвать метод в главном классе Java приложения
Появилась необходимость добавления кода из одного java приложения в другое (находятся в одной папке).
Пример результата: Во втором приложении должен появится метод:
public void test(){
...
}
И вызываться он должен из главного класса.
В интернете нашел рабочий код но не могу с ним разобраться. (ссылки в коде устарели)
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r");
randomAccessFile.seek(n);
byte[] input = new byte[n2];
randomAccessFile.read(input, 0, n2);
randomAccessFile.close();
Inflater inflater = new Inflater();
inflater.setInput(input);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(n2);
byte[] array2 = new byte[1024];
while (!inflater.finished()) {
byteArrayOutputStream.write(array2, 0, inflater.inflate(array2));
}
byteArrayOutputStream.close();
byte[] byteArray = byteArrayOutputStream.toByteArray();
inflater.end();
URLClassLoader urlClassLoader = new URLClassLoader(new URL[] { new URL("http://central.maven.org/maven2/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar"), new URL("http://central.maven.org/maven2/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar") }, Thread.currentThread().getContextClassLoader());
Method declaredMethod = ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, Integer.TYPE, Integer.TYPE);
declaredMethod.setAccessible(true);
((Class<?>)declaredMethod.invoke(urlClassLoader, null, byteArray, 0, byteArray.length)).newInstance();
Ответы (1 шт):
Автор решения: Arty Morris
→ Ссылка
В settings.gradle пишите название второго проекта
include ':app', ':usbserial'
В build.gradle пишите второй проект
implementation project(':usbserial')
Синхронизируете gradle. Теперь можете использовать методы второго приложения в основном