2009-06-12 3 views
0

나는 오늘 Javascript_Java_Interaction에 대한 기사를 보았다 ========================================================================================================== =================Javascript_Java_Interaction 애플릿 "코드베이스"문제

[C:/Dir_Fit/Javascript_Java_Interaction.html] 

    <FRAMESET ROWS="100%,*"> 
     <FRAME NAME="mainFrame" SRC="Javascript_Java_Interaction_Visible_Page.html" border=0> 
     <FRAME NAME="scriptFrame" SRC="Javascript_Java_Interaction_Invisible_Page.html" border=0> 
    </FRAMESET> 
-------------------------------------------------------------------------------------------- 

[C:/Dir_Fit/Javascript_Java_Interaction_Invisible_Page.html] 

<HTML> 
    <HEAD> 
    <SCRIPT> 
     function replace(s,t,u) 
     { 
     i=s.indexOf(t); 
     r=""; 
     if (i==-1) return s; 
     r+=s.substring(0,i)+u; 
     if (i+t.length<s.length) r+=replace(s.substring(i+t.length,s.length),t,u); 
     return r; 
     } 

     function getAndSendMessage() 
     { 
     theMessage=document.location.search.substring(1,255) 
     if (theMessage.length>0) 
     { 
      // replace all '+" by space 
      theMessage=replace(theMessage,'+',' ') 
      window.parent.mainFrame.showMessage(unescape(theMessage)) 
     } 
     } 
    </SCRIPT> 
    </HEAD> 
    <BODY onLoad="getAndSendMessage();"></BODY> 
</HTML> 
----------------------------------------------------------------------------------------- 
[C:/Dir_Fit/Javascript_Java_Interaction_Visible_Page.html] 

<HTML> 
    <HEAD><SCRIPT>function showMessage(s) { alert(s) }</SCRIPT></HEAD> 
    <BODY> 
    <H1>Simple Java - Javascript interaction</H1><P> 
    <APPLET CODEBASE="file://C:/Dir_Fit/build/classes/" CODE="Javascript_Java_Interaction_Demo.class" WIDTH=150 HEIGHT=150></APPLET> 
    </BODY> 
</HTML> 
----------------------------------------------------------------------------------------- 
Source : [C:/Dir_Fit/src/Javascript_Java_Interaction_Demo.java] 
class : [C:/Dir_Fit/build/classes/Javascript_Java_Interaction_Demo.class] 

import java.applet.Applet; 
import java.awt.*; 

public class Javascript_Java_Interaction_Demo extends Applet 
{ 
    TextField aMessage; 
    Button sendButton; 

    public void init() 
    { 
    aMessage=new TextField(20); 
    add(aMessage); 
    sendButton=new Button("Send to Javascript"); 
    add(sendButton); 
    } 

    public boolean action(Event e,Object o) 
    { 
    if (e.target.equals(sendButton)) 
    { 
     try { getAppletContext().showDocument(new java.net.URL(getCodeBase(),"Javascript_Java_Interaction_Invisible_Page.html?"+java.net.URLEncoder.encode(aMessage.getText())),"scriptFrame"); } 
     catch (Exception ex) { ex.printStackTrace(); } 
    } 
    return true; 
    } 
} 

========================== ========================================================================================================== ==============

[Javascript_Java_Interaction] 페이지에 애플릿이 표시되었습니다. 나는 텍스트를 입력하고 버튼을 클릭하면 HTML, 그러나 아무 일도 발생하지 않습니다, 문제는 다음 줄에 있습니다

<APPLET CODEBASE="file://C:/Dir_Fit/build/classes/" CODE="Javascript_Java_Interaction_Demo.class" WIDTH=150 HEIGHT=150></APPLET> 

그래서 나는 HTML 파일 [C와 같은 디렉토리에 클래스 파일을 복사 :/Dir_Fit /]로 변경하고 위의 행을 다음으로 변경했습니다.

<APPLET CODE="Javascript_Java_Interaction_Demo.class" WIDTH=150 HEIGHT=150></APPLET> 

이제는 경고 창이 표시됩니다.

내 질문에 왜 내가 코드베이스를 지정했을 때 작동하지 않습니까? Java 문서에 따르면 클래스 파일이 다른 디렉토리에 있으면 코드베이스로 표시 할 수 있습니다. 애플릿이 표시되지만 텍스트를 입력하고 버튼을 클릭해도 아무 것도 나타나지 않습니다. 다른 방법으로 지정하려고 시도했습니다. 코드베이스 :

<APPLET CODEBASE="file:///C:/Dir_Fit/build/classes/" CODE="Javascript_Java_Interaction_Demo.class" WIDTH=150 HEIGHT=150></APPLET> 

    <APPLET CODEBASE="C:/Dir_Fit/build/classes/" CODE="Javascript_Java_Interaction_Demo.class" WIDTH=150 HEIGHT=150></APPLET> 

    <APPLET CODEBASE="build/classes/" CODE="Javascript_Java_Interaction_Demo.class" WIDTH=150 HEIGHT=150></APPLET> 

<APPLET CODE="C:/Dir_Fit/build/classes/Javascript_Java_Interaction_Demo.class" WIDTH=150 HEIGHT=150></APPLET> 

아직 작동하지 않는 이유는 무엇입니까? 나는 클래스 파일이 html과 같은 디렉토리에 있기를 원하지 않는다. 그 수정은 뭐니?

프랭크

답변

0

그것은 내 애플릿이 브라우저의 독립 ClassNotFoundExceptions가 실패하기 시작 출시 후 자바 6 업데이트 10에서 변경과 함께 할 수있는 뭔가가있을 수 있습니다 - 이상하게도 그들은 그 전에 6u7와 함께 일을. 처음에는 망가진 할부 또는 구성에 대해 생각했지만 다른 사람들은 시스템에서 동일한 것을 경험했습니다.

내 시행 착오와 같은 결과가 나타났습니다. 즉, 빈 codebase 속성을 지정해도 애플릿이 실패합니다.

(오늘) 주위를 둘러보기는 의미있는 결과 또는 버그 보고서가 발행되지 않습니다. 코드베이스 속성 사용법에 대한 규칙이 버전간에 변경되었다고 추측 할 수 있습니다. 이전 버전은 제한적이지 않거나 일부 사양을 준수하지 않았을 수 있습니다.