0
사용자 정의 ClassLoader를 작성했으며 클래스를로드하려고합니다. 나는 항아리에서 클래스를로드 할 순간에이 코드를 사용하고 있습니다 :String을 사용하지 않고 사용자 정의 ClassLoader로 클래스로드하기
ByteArrayInputStream byteIS = new ByteArrayInputStream(data);
JarInputStream jarIS = new JarInputStream(byteIS);
JarEntry je;
je = jarIS.getNextJarEntry();
byte[] classbytes = new byte[(int) je.getSize()];
jarIS.read(classbytes, 0, classbytes.length);
jarIS.close();
CustomClassLoader classLoader = new CustomClassLoader();
classLoader.setClassContent(classbytes);
Class c = classLoader.findClass("Main");
Object object = c.newInstance();
Method[] methods = object.getClass().getMethods();
Object returnValue = methods[0].invoke(null, new Object[]{new String[]{}});
을이 샘플에서는 분명 내가 클래스 홈페이지를로드하려고 볼 수 있습니다 위. 이제 내 친구가 항아리도 만들었다 고 상상해보십시오. 수업의 이름이 무엇인지 미리 알 수 없습니다. String을 인수로 사용하지 않으려면 어떻게해야합니까?
왜 문자열을 사용하지 않으시겠습니까? –
콘텐츠를 변경하고 싶습니다. 클래스 이름이 항상 같지는 않습니다. – ManyQuestions
어? 그렇다면 수업을 어떻게 식별 하시겠습니까? –