2013-06-23 4 views
1

ClassLoader 사용에 문제가 있습니다. 내 코드 스 니펫 :ClassLoader가 매개 변수로 애플릿을로드 중입니다.

[...] 

Class<?> appletClass = classLoader.loadClass("path.to.Applet123"); 
Applet applet = (Applet) appletClass.newInstance(); 
applet.init(); 
applet.start(); 

[...] 

그리고 Applet123 클래스는 내 것이 아니므로 편집 할 수 없습니다.

public void init() { 
    System.out.println(getParameter("myParameter")); 
} 

불행하게도이 null를 인쇄 :하지만 수업 시간에 Applet123이 같은 것을 알고있다.

문자열이 포함 된 myParameter 매개 변수가있는 Applet123.class를로드하려면 코드에 무엇을 추가해야합니까? "여보세요"?

답장을 보내 주셔서 감사합니다.

+0

는 * "나는 클래스 로더를 사용하여 문제가있다."* 왜 * 당신은 * [자바 웹 스타트 (웹 페이지를 삽입하거나 사용 자유 부동 발사에 반대 애플릿을로드하려고 http://stackoverflow.com/tags/java-web-start/info). –

답변

0

오라클 자습서를 살펴 보자 :

http://docs.oracle.com/javase/tutorial/deployment/applet/param.html

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="" href=""> 
    <!-- ... --> 
    <applet-desc 
     name="Applet Takes Params" 
     main-class="AppletTakesParams" 
     width="800" 
     height="50"> 
      <param name="paramStr" 
       value="someString"/> 
      <param name="paramInt" value="22"/> 
    </applet-desc> 
    <!-- ... --> 
</jnlp> 
1

당신이 정말로 애플릿 인스턴스가 매개 변수를 읽고있는 당신도의 AppletStub의 인스턴스를 제공해야합니다 애플릿을 직접로드해야하는 경우 에서. 자바 소스 코드는이를 보여줍니다 다음을 수행하고 (아마 더 나은) 격차를 채우거나 수 있도록 많은 방법이, 스텁 인스턴스에서 데이터를 얻을

public String getParameter(String name) { 
    return stub.getParameter(name); 
} 

참고 @owlstead 언급 한 바와 같이 JNLP를 사용!

AppletStub stub = new AppletStub() { 
    // lots of code including defining the parameter 'myParameter' 
}; 
Applet a = new Applet(); 
a.setStub(stub); 
a.init(); 
// ... 
관련 문제