예제프로그램 웹스타트로 실행하기 - Web Start - 웹에서 스윙 사용하기 :: AWT스윙GUI[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

AWT스윙GUI
[1]
등록일:2008-04-22 11:26:27 (0%)
작성자:
제목:예제프로그램 웹스타트로 실행하기 - Web Start - 웹에서 스윙 사용하기
VI.  예제프로그램  웹스타트로  실행하기  
---------------------------------------

    웹스타트  응용프로그램  개발  과정을  다시한번  정리해보면  다음과  같다.

1.  실행될  응용프로그램을  AWT/Swing으로  개발한다.
2.  개발된  응용프로그램을  배포할  수  있도록  jar로  묶는다.
3.  Local  자원을  사용할  수  있도록  jar에  sign을  하여  signed-jar를  만든다.
4.  배포  실행될  응용프로그램에  대한  내용을  jnlp  화일을  만들어  xml로  기술한다.
5.  web  서버에  JNLP  mime  type을  설정한다.
6.  web  서버의  적절한  디렉토리에  singed-jar,  jnlp  화일  및  이미지  화일을  복사한다.

여기까지의  사항이  완료되었다면  일단  웹브라우져에서  웹스타트  응용프로그램을
실행할  수  있는  웹서버  환경이  갖추어진  것이다.

  실제  예제로  만들어진  editor.jar  와  simple.jnlp를  브라우져에서  실행하려면
웹서버를  실행하고  단순히  다음과  같이  simple.jnlp를  호출하는  URL을  치면  된다.

  http://www.javanuri.com/jaws/apps/simple.jnlp

    브라우져에  jre1.4가  정상적으로  설치되었으면  먼저  "Web  Start  Logo"화면이  뜨고
보안을  위해  jar에  sign된  내용이  나타나면서  승인  여부를  묻는  화면이  나온다.
여기에서  "예"를  선택하면  즉시  editor  프로그램이  실행될  것이다.
그리고  두번째로  웹에서  실행할  때는  바탕화면에  아이콘  생성  여부를  물을  것이다.
여기에서  "예"를  선택하면  바탕화면에  아이콘이  생성되면서  다음  부터는  웹브라우져를
통하지  않고  바탕에  있는  아이콘을  단순히  클릭함으로써  응용프로그램이  시작될  것이다.

    이제까지  만들어왔던  SimpleEditor  예제에  대한  관련  jar,  jnlp,  jpg  화일들은
example.zip에  묶어  첨부되어  있다.  이를  다운로드  받아  압축을  풀고  웹서버에  설치하고
실행시켜보기  바란다.  단  실행시  jnlp화일에  있는  codeBase  속성은  여러분의  웹서버  주소에
맞도록  수정해야  한다.

    서버  설정은  이제까지  설정한데로  하면  보통은  이상없이  환경이  설정된다.  하지만
클라이언트  즉  브라우져  환경은  사용자에  따라  웹스타트가  설정되어  있을  수도  있고,  아닐수
도  있다.  따라서  이러한  브라우져  환경을  통제하려면  html  및  javascript를  이용할  필요가
있다.
        
    사용자  브라우져를  체크해  웹스타트를  실행할  수  있는  방법은  여러가지가  있을  수  있지만
대체로  다음  세가지  방법이  있다.
        
1.  자바스크립트를  이용해  웹스타트  설치여부를  체크한  다음  설치돼지  않았을  경우
      설치하라는  메시지  링크를  주는  방법
      
2.  웹스타트  버젼1.2의  자동  설치  기능을  이용하는  방법
        
3.  간단한  JRE1.4를  이용한  Applet을  이용하는  방법
        

    첫번째  방법인  자바웹스타트  설치여부를  체크하는  방법은  우선  웹브라우져  종류를  파악해야  하는데,
이방법은  "Java  Web  Start  Developers's  Guide"에서  사용한  자바스크립트인  xbDetectBrowser()를  사용하여
할  수  있다.  xbDetectBroser.js는  본  글에  첨부  하였다.
        
    다음  예제는  "Java  Web  Start  Developers's  Guide"에  나오는  예제를  응용하여  이해하기  쉽게  변경한
것으로서  스크립트를  실행시키면  Java  Web  Start  가  설치되었을  경우는  해당  프로그램을  실행할  수  있는
URL  링크가  나오고,  설치되어  있지  않을  경우는  Java  Web  Start를  설치하라는  메시지가  나오는  예제이다.

Simple1.html
=====================================================================================================
<HTML>
<HEAD><TITLE>Java  Web  Start  Page</title>
<!----------------------------------------------------------------
    xbDetectBrowser()  함수를  이용하여  브라우져  환경에  관한  정보  생성
------------------------------------------------------------------>
<SCRIPT  LANGUAGE="JavaScript"  SRC="xbDetectBrowser.js"></SCRIPT>

<!----------------------------------------------------------------
    Web  Start  설치  여부,  브라우져가  IE  인지  여부  설정  
------------------------------------------------------------------>
<SCRIPT  LANGUAGE="JavaScript">  

        var  javawsInstalled  =  0;  
        isIE  =  "false";  

        if  (navigator.mimeTypes  &&  navigator.mimeTypes.length)  {  
              x  =  navigator.mimeTypes['application/x-java-jnlp-file'];  
              if  (x)  javawsInstalled  =  1;  
        }  else  {  
              isIE  =  "true";  
        }  

</SCRIPT>

<!----------------------------------------------------------------
    브라우져가  IE일  경우  Web  Start  설치  여부  결정하는  VBScript
------------------------------------------------------------------>

<SCRIPT  LANGUAGE="VBScript">  
        on  error  resume  next  
        If  isIE  =  "true"  Then  
            If  Not(IsObject(CreateObject("JavaWebStart.IsInstalled")))  Then  
                        javawsInstalled  =  0  
            Else  
                        javawsInstalled  =  1  
            End  If  
        End  If  
</SCRIPT>

<!----------------------------------------------------------------
  insertLink  함수  정의  :
      웹스타트가  설치되었을  경우는  응용  프로그램  실행  링크를  보여주고
      그렇지  않을  경우는  설치  필요  메시지  보여줌
    (설치  필요  메시지를  수정하여  download  URL  링크로  만들  수  있음)
------------------------------------------------------------------>

<SCRIPT  LANGUAGE="JavaScript">  
        function  insertLink(url,  name)  {  
        if  (javawsInstalled  ||  navigator.family  ==  'gecko')  {  
                    document.write("<a  href="  +  url  +  ">"    +  name  +  "</a>");  
              }  else  {  
                    document.write("Java  Web  Start  설치가  필요합니다.");  
              }  
        }  
</SCRIPT>

<!----------------------------------------------------------------
    웹스타트  응용프로그램  실행  링크를  insertLink  함수를  통하여  만듬
------------------------------------------------------------------>

<SCRIPT  LANGUAGE="Javascript">  
        insertLink("http://www.javanuri.com/jaws/apps/simple.jnlp",  "웹스타트  응용프로그램  시작");  
</SCRIPT>

<BODY>        
</BODY>
</HTML>
        
=====================================================================================================
        
  두번째  방법인  자동  설치  기능을  이용하는  방법은  썬의  자바  사이트에서  제공하는  Web  Start자동  설치
기능을  수행하는  ActiveX를  호출하는  것이다.  Java  Web  Start만을  자동  설치하는  OBJECT  테그  및  URL

<OBJECT  CODEBASE="http://java.sun.com/products/javawebstart/autodl/jinstall_javaws-1_2-windows-i586.cab"  
CLASSID="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284"  HEIGHT=0  WIDTH=0>
이며

자바  1.4  버전을  자동  설치할  수  있는  OBJECT  테그  및  URL

<OBJECT  CODEBASE="http://java.sun.com/products/plugin/autodl/jinstall-1_4_1-windows-i586.cab"  
CLASSID="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284"  HEIGHT=0  WIDTH=0>

이다.

    이왕  자동  설치  기능을  사용하려면  web  start만  설치하는  것  보다는  응용프로그램  환경이  더  좋은
자바  1.4버전을  설치하는  것이  좋다.

    다음  예제는  위의  예제와  같이  기존에  web  start설치  여부를  체크하고  없으면  자동설치  되도록  자바  
스크립트  및  HTML을  작성  예를  보여주고  있다.  (  Developer's  Guide  참조  )

Simple2.html
=====================================================================================================

<!----------------------------------------------------------------
    브라우져가  Netscape일때  web  start  설치  여부를  설정한다.
------------------------------------------------------------------>

<SCRIPT  LANGUAGE="JavaScript">
var  javawsInstalled  =  0;
var  javaws12Installed  =  0;

isIE  =  "false";

if  (navigator.mimeTypes  &&  navigator.mimeTypes.length)  {
    x  =  navigator.mimeTypes['application/x-java-jnlp-file'];
    if  (x)  {
          javawsInstalled  =  1;
          javaws12Installed=1;
    }
}  else  {  
    isIE  =  "true";
}
</SCRIPT>

<!----------------------------------------------------------------
    브라우져가  IE일때  web  start  설치  여부를  설정한다.
------------------------------------------------------------------>

<SCRIPT  LANGUAGE="VBScript">
on  error  resume  next
If  isIE  =  "true"  Then
    If  Not(IsObject(CreateObject("JavaWebStart.isInstalled")))  Then
          javawsInstalled  =  0
    Else
          javawsInstalled  =  1
    End  If
    If  Not(IsObject(CreateObject("JavaWebStart.isInstalled.2")))  Then
          javaws12Installed  =  0
    Else
          javaws12Installed  =  1
    End  If
End  If
</SCRIPT>

<!----------------------------------------------------------------
    xbDetectBrowser.js를  이용하여  navigator.family를  설정한다.
------------------------------------------------------------------>
<SCRIPT  LANGUAGE="JavaScript"
SRC="xbDetectBrowser.js">
</SCRIPT>

<!----------------------------------------------------------------
    gecko  방식이거나  이미  web  start가  설치된  경우는  
    http://www.yyy.zzz/app.jnlp를  실행할  수있는  link를  보여준다.

    그렇지  않다면
    썬에서  제공하는  PluginBrowserCheck를  실행시킬수  있는  link를  제공한다.
    PluginBrowserCheck는  브라우져가  IE일  경우  "pass"파라미터에  있는
    자동  설치  URL인  http://www.yyy.zzz/download.html로  가고  아닐경우는
    플랫폼에  따라  설치  안내문이  나오도록  "fail"파라미터에  있는
    http://java.sun.com/cgi-bin/javawebstart-platform.sh로  간다.

------------------------------------------------------------------>

<SCRIPT  LANGUAGE="JavaScript">
if  (javawsInstalled  ||    navigator.family  ==  'gecko')  {
        document.write("<a  href=http://www.yyy.zzz/app.jnlp>프로그램  실행</a>");
}  else  {

    document.write("<a  href=http://dlres.java.sun.com/PluginBrowserCheck?");
    document.write("pass=http://www.yyy.zzz/download.html&");
    document.write("fail=http://java.sun.com/cgi-bin/javawebstart-platform.sh>");
    document.write("설치  및  응용프로그램  실행</a>");

}
</SCRIPT>

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

download.html
=====================================================================================================
<!----------------------------------------------------------------
웹스타트  자동  설치  ActiveX프로그램을  호출하고  설치후에는  
http://www.yyy.zzz/app.jnlp로  링크되도록  한다.
만일  이미  설치돼었다면  곧바로  웹스타트가  실행된다.
------------------------------------------------------------------>

<HTML>
<BODY>
<OBJECT  CODEBASE="http://java.sun.com/products/javawebstart/autodl/jinstall_javaws-1_2-windows-i586.cab"  
CLASSID="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284"  HEIGHT=0  WIDTH=0>
<PARAM  NAME="app"  VALUE="http://www.yyy.zzz/app.jnlp">
<PARAM  NAME="back"  VALUE="true">
<!--  Alternate  HTML  for  browsers  which  cannot  instantiate  the  object  -->
<A  HREF="http://java.sun.com/cgi-bin/javawebstart-platform.sh?">
Download  Java  Web  Start</A>
</OBJECT>
</BODY>
</HTML>
=====================================================================================================

이  방법은  결국  썬에서  제공하는  설치  ActiveX를  이용하는  것이고  그렇기  때문에  IE에서만  작동한다.
그리고  설치가  않될  경우는  플랫폼에  따라  설치  메뉴얼이  있는  페이지로  이동하게  된다.  이  방법을
잘  파악하려면  다음과  같이  썬에서  제공하는  각종  URL을  잘  이해하고  있어야  한다.

-  http://dlres.java.sun.com/PluginBrowserCheck  
    pass와  fail파라미터가  있어  브라우져가  IE일  경우  pass에서  준  URL로  링크되고  아닐  경우는
    fail에서  준  URL로  링크된다.    파라미터가  없을  경우  플랫폼에  따라  JRE를  설치할  수  있는
    메뉴얼  페이지로  간다.

-  http://java.sun.com/cgi-bin/javawebstart-platform.sh
    플렛폼에  따라  자바  웹스타트를  설치할  수  있는  메뉴얼  페이지로  이동한다.

-  <OBJECT  CODEBASE="http://java.sun.com/products/javawebstart/autodl/jinstall_javaws-1_2-windows-i586.cab"  
    CLASSID="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284"  HEIGHT=0  WIDTH=0>
    자바  웹스타트를  자동  다운로드  및  설치하는  ActiveX를  구동한다.  "app"파라미터는  설치후  자동  링크되는
    URL  값이다.


-  <OBJECT  CODEBASE="http://java.sun.com/products/plugin/autodl/jinstall-1_4_1-windows-i586.cab"  
    CLASSID="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284"  HEIGHT=0  WIDTH=0>
    JRE1.4를  자동  다운로드  및  설치하는  ActiveX를  구동한다.  웹스타트는  자바  1.4버젼에  포함되어  있다.


    자동  설치  및  실행의  세번째  방법은  간단하게  시작  버튼을  가진  Applet을  만들고  Applet실행을  
JRE  1.4로  할  수  있도록  요구하는  것이다.    이렇게  하면  Applet이  실행되면서  JRE  설치  버젼을
체크해  자동으로  JRE1.4가  설치되며  자바웹스타트도  자동  설치된다.
  
    Applet을  조금더  응용하면  Applet에  실행버튼을  만들어  웹스타트  응용  프로그램을  바로  실행할  수  있도록
하는  것이다.  다음은  그러한  버튼을을  갖은  예제  Applet  및  실행  HTML이다.

StartApplet.java
=====================================================================================
import  java.awt.*;
import  java.awt.event.*;
import  java.net.*;

/**
  *  StartApplet
  *
  */
  
public  class  StartApplet  extends  java.applet.Applet  implements  ActionListener  {

        //  start  button
        Button  btStart                =  new  Button("응용프로그램  시작");
        
        //  url
        String  url;
        
        //--------------------------------
        //  init
        //--------------------------------
        public  void  init()  {
                
                btStart.addActionListener(this);
                add(btStart);
                
                url  =  getParameter("url");
                
        }
        
        //----------------------------------------
        //  action  performed
        //----------------------------------------
        public  void  actionPerformed(ActionEvent  e)  {
        
                try  {
                        getAppletContext().showDocument(new  URL(url));
                }catch(Exception  ex)  {
                        ex.printStackTrace();
                }
                
        }
        
}

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

StartApplet.html
==============================================================================

<html>
<body>

<OBJECT        name="StartApplet"    classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"    WIDTH=150  HEIGHT=30
    codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_0-win.cab#Version=1,4,0,0">
    <PARAM  NAME=CODE  VALUE="StartApplet.class">
    <PARAM  NAME="type"  VALUE="application/x-java-applet;version=1.4">
    <PARAM  NAME="url"  VALUE="<a  href=http://www.yyy.zzz/app.jnlp>">

    <COMMENT>
      <EMBED  type="application/x-java-applet;jpi-version=1.4"  CODE="StartApplet.class"  WIDTH=150  HEIGHT=30
        pluginspage="http://java.sun.com/products/plugin/index.html#download">
        scriptable=false
          <NOEMBED></NOEMBED>
      </EMBED>
    </COMMENT>
</OBJECT>        

</body>
</html>

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

    StartApplet은  url  파라미터를  받아들이고  시작  버튼을  누르면  브라우져의  링크를  url  파라미터가
지정한데로  가도록  되어  있다.  따라서  실행하고  싶은  JNLP  파일을  url  파라미터에  주면  웹스타트가
자동  실행된다.

    StartApplet.html은  StartApplet  클레스를  자바  플러그인  형태로  실행  시키며,  자바  플러그인이
설치되어있지  않으면  자동  설치되도록  되어  있다.  위의  예제에서  <a  href=http://www.yyy.zzz/app.jnlp>  부분만
원하는  URL로  바꾸어주면  자동  설치  및  웹스타트  시작페이지로  사용할  수  있을  것이다.

    이  방법은  간단한  Applet이  필요하기는  하지만  가장  간단하고  쉬운  방법이  아닌가  생각한다.
[본문링크] 예제프로그램 웹스타트로 실행하기 - Web Start - 웹에서 스윙 사용하기
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=7477
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.