Я пишу некоторые строки в Java для запуска .jar файл из ресурса во время выполнениякак загрузить MainClass фляги файл с именем из ресурса
первый я получить банку заполнить
// create FileInputStream object InputStream fileInputStream = TestCL.class.getResourceAsStream("test.jar");
Создать байтовый массив
byte rawBytes[] = new byte[fileInputStream.available()];
Чтобы прочитать содержимое файла в массив байтов
fileInputStream.read(rawBytes);
, как я могу загрузить основной класс из этого FileInputStream
это мой тест, чтобы вызвать метод из класса, как я может сделать этот пример с файлом jar?
package testcl;
import java.io.InputStream;
public class TestCL extends ClassLoader {
public static void main(String args[]) throws Exception {
TestCL javaClassLoader = new TestCL();
javaClassLoader.load();
}
public void load() throws Exception {
// create FileInputStream object
InputStream fileInputStream = TestCL.class.getResourceAsStream("ClassLoaderInput.class");
byte rawBytes[] = new byte[fileInputStream.available()];
fileInputStream.read(rawBytes);
// Load the target class
Class<?> regeneratedClass = this.defineClass(rawBytes, 0, rawBytes.length);
// Getting a method from the loaded class and invoke it
regeneratedClass.getMethod("printString", null).invoke(regeneratedClass.newInstance(), null);
}
}
какого рода "нагрузки"? Загрузить как полезный класс через «ClassLoader» или загрузить байты? (jar - это zip-файл, вы можете использовать простой старый почтовый индекс, чтобы изучить его) – zapl
ys bro, с ClassLoader, но без создания файла на жестком диске и называть его URL-адресом или другом – joseph
Посмотрите на https: // docs. oracle.com/javase/tutorial/deployment/jar/jarclassloader.html - 'Url' может быть' TestCL.class.getResource ("test.jar") ', не уверен в этом. Cound также заключается в том, что вам нужно прикрепить этот url с помощью jar: ' – zapl