2014-09-01 4 views
0

jar 파일이 들어있는 폴더가 있습니다. 그 모든 파일을로드 한 다음 jar 파일에있는 모든 클래스 파일을로드합니다. 이제 클래스 파일의 모든 클래스의 인스턴스를 만들고 싶습니다.ClassFile 클래스의 인스턴스 가져 오기

ClassFile[] classFiles = loadClassFiles(); 
Object[] objects = new Object[classFiles.length]; 
for(int i = 0; i < classFiles.length; i++){ 
objects[i] = getNewInstanceOf(classfiles[i]); 
} 

이것은 지금까지 내가 한 것입니다. 메서드 getNewInstaceOf(Classfile file) 만 누락되었습니다. 아무도 이걸하는 방법을 말해 줄 수 있습니까?

jar 파일에서 모든 클래스를로드하는 더 쉬운 방법이 있으면 알려줄 수도 있습니다. 다른 방법이 있다면 classfile을 가져 오거나 jarfile을로드 할 필요가 없습니다. 당신은 당신이 원하는 클래스의 이름을 알고있는 경우 또한

당신이 알아야 할 모든 클래스 매개 변수에 도움을
감사합니다 :)가없는 생성자가 않습니다

+1

볼 사용할 수 있습니다 http://docs.oracle.com/javase/tutorial/reflect/member/ctorInstance.html –

+1

질문하기 전에 문서를 읽어야합니다. 문서가 실제로 대답합니다. 그것은 당신의'Class.getResource' 질문과 동일합니다. – Seelenvirtuose

+0

@ Skary Wombat 클래스가 아닌 ClassFile이 있습니다. 나는 ClassFile에 의해 대표되는 Class를 얻는 방법을 모른다. 그게 내가 알고 싶어하는거야. 인스턴스를 만드는 방법을 이미 알고 있었지만 ClassFile에서 만드는 방법을 모르겠습니다. – Basti

답변

0

당신은

File file = getJarFileToLoadFrom(); 
String lcStr = getNameOfClassToLoad(); 
URL jarfile = new URL("jar", "","file:" + file.getAbsolutePath()+"!/");  
URLClassLoader cl = URLClassLoader.newInstance(new URL[] {jarfile }); 
Class loadedClass = cl.loadClass(lcStr); 
+0

gr8, 감사합니다. : D That 's perfect :) – Basti

+0

좋습니다. 제 대답을 수락하고/또는 위로 투표하는 것을 고려하십시오. –

+0

나는 이것이 오래된 끈이라고 알고 있지만 다시 제발 나를 도와 줄 수 있니? 클래스 이름의 구문은 무엇입니까? 나는 클래스 플러그인 JavaPlugin.class (plugin.JavaPlugin.class는 매개 변수로 사용했다)를 찾을 수 없기 때문에 항상 classnotfoundexception을 얻는다. – Basti

관련 문제