.$B%W%m%0%i%`Nc.(B 1:Hello World


.$B$3$N%Z!<%8$G$O!"

  • .$BC1=c$J!V.(BHello World.$B!W%W%m%0%i%`$N.(B IDL
  • .$B%*%V%8%'%/%H$r:n@.$7!"$=$l$r%M!<%_%s%0%3%s%F%-%9%H$KEPO?$9$k.(B.$B0l;~%5!<%P.(B
  • .$B4{CN$N%*%V%8%'%/%HL>$N%*%V%8%'%/%H;2>H$r%M!<%_%s%0%3%s%F%-%9%H$+$iC5$7!"$=$N%*%V%8%'%/%H$r8F$S=P$9.(B.$B%"%W%j%1!<%7%g%s%/%i%$%"%s%H.(B
  • .$BF1$8$3$H$r9T$&.(B.$B%"%W%l%C%H.(B

    .$B$3$N%W%m%0%i%`Nc$N%3%s%Q%$%kJ}K!$H

    .$B%$%s%?%U%'!<%9Dj5A.(B (Hello.idl)

    .$BsayHello() .$B$H$$$&%*%Z%l!<%7%g%s$,.(B 1 .$B$D$@$14^$^$l$?.(B CORBA .$B%*%V%8%'%/%H$r5-=R$7$?$b$N$G$9!#.(B

    module HelloApp
    {
        interface Hello
        {
            string sayHello();
        };
    };
    
    .$BCm.(B: OMG IDL .$B$G%3!<%I$r5-=R$9$k>l9g!"%b%8%e!<%kL>$K%$%s%?%U%'!<%9L>$r;HMQ$7$J$$$G$/$@$5$$!#.(B .$B%b%8%e!<%kL>$K%$%s%9%?%s%9L>$r;HMQ$9$k$H!"0[$J$k%Y%s%@!<$N%D!<%k$r;H$C$?%3%s%Q%$%kA0$r4^$`%3!<%I$r.(B Sun Microsystems .$B$N.(B IDL-to-Java .$B%3%s%Q%$%i$r;H$C$F%3%s%Q%$%k$9$k$H!".(B1 .$B$D$N7k2L$,F@$i$l$^$9!#.(B .$BF1$8%3!<%I$rJL$N%Y%s%@!<$N.(B IDL-to-Java .$B%3%s%Q%$%i$r;H$C$F%3%s%Q%$%k$9$k$H!"JL$N7k2L$K$J$k>l9g$,$"$j$^$9!#.(B

    .$B$3$N.(B IDL .$B%$%s%?%U%'!<%9$O!" idltojava Hello.idl .$B$3$l$K$h$j!".(BHelloApp .$B%5%V%G%#%l%/%H%j$K

    _HelloImplBase.java
    .$B$3$NCj>]%/%i%9$O.(B.$B%5!<%P%9%1%k%H%s.(B.$B$G!"%5!<%PMQ$K4pK\E*$J.(B CORBA .$B5!G=$rDs6!$7$^$9!#$3$N%/%i%9$G!".(BHello.java .$B%$%s%?%U%'!<%9$,HelloServant .$B$K$h$j.(B _HelloImplBase .$B$,3HD%$5$l$^$9!#.(B
    _HelloStub.java
    .$B$3$N%/%i%9$O.(B.$B%/%i%$%"%s%H%9%?%V.(B.$B$G!"%/%i%$%"%s%HMQ$K4pK\E*$J.(B CORBA .$B5!G=$rDs6!$7$^$9!#$3$N%/%i%9$G!".(BHello.java .$B%$%s%?%U%'!<%9$,Hello.java
    .$B$3$N%$%s%?%U%'!<%9$K$O:n@.$7$?.(B IDL .$B%$%s%?%U%'!<%9$N.(B Java .$BHG$,4^$^$l$^$9!#.(BsayHello() .$B%a%=%C%I$,4^$^$l$^$9!#.(BHello.java .$B%$%s%?%U%'!<%9$OI8=`$N.(B CORBA .$B%*%V%8%'%/%H5!G=$K2C$(!".(Borg.omg.CORBA.Object .$B$N5!G=$r3HD%$7$^$9!#.(B
    HelloHelper.java
    .$B$3$N.(B final .$B%/%i%9$OJd=uE*$J5!G=$rDs6!$7$^$9!#.(B .$BFC$K!".(B.$B%*%V%8%'%/%H;2>H.(B.$B$rE,@Z$J7?$K%-%c%9%H$9$k$?$a$N.(B narrow() .$B%a%=%C%I$O=EMW$JLr3d$r2L$?$7$^$9!#.(B
    HelloHolder.java
    .$B$3$N.(B final .$B%/%i%9$K$O!".(BHello .$B7?$N%Q%V%j%C%/%$%s%9%?%s%9%a%s%P$,F~$j$^$9!#$3$3$G$O!".(Bout .$B$*$h$S.(B inout .$B0z?t$KBP$9$k%*%Z%l!<%7%g%s$,5,Dj$5$l$^$9!#.(B .$B$3$l$i$N0z?t$O.(B CORBA .$B$K$OB8:_$7$^$9$,!".(BJava .$B$N%;%^%s%F%#%/%9$K$O4JC1$K%^%C%T%s%0$G$-$^$;$s!#.(B
    .$B%"%W%j%1!<%7%g%s$r40@.$5$;$k$K$O!"%5!<%P$H%/%i%$%"%s%H$r!"$=$l$>$l.(B HelloServer.java .$B%U%!%$%k$H.(B HelloClient.java .$B%U%!%$%k$G

    .$B%5!<%P$NHelloServer.java)

    .$B$3$3$G>R2p$9$k%5!<%P$O!"%5!<%P%s%H$H%5!<%P$N.(B 2 .$B$D$N%/%i%9$G9=@.$5$l$^$9!#.(B .$B%5!<%P%s%H$G$"$k.(B HelloServant .$B$O!".(B IDL .$B%$%s%?%U%'!<%9.(B Hello .$B$NHello .$B$N3F%$%s%9%?%s%9$O!".(B HelloServant .$B$N%$%s%9%?%s%9$K$h$je5-$N.(B IDL .$B$+$i@8@.$5$l$k.(B _HelloImplBase .$B$N%5%V%/%i%9$G$9!#.(B .$B%5!<%P%s%H$K$O!".(BIDL .$B$N%*%Z%l!<%7%g%s$4$H$K.(B 1 .$B$D$N%a%=%C%I$,4^$^$l$^$9!#.(B .$B$3$NNc$G$O.(B sayHello() .$B%a%=%C%I$@$1$,4^$^$l$^$9!#.(B .$B%5!<%P%s%H%a%=%C%I$O!".(B Java .$B$NDL>o$N%a%=%C%I$HJQ$o$j$^$;$s!#.(B .$B0z?t$d7k2L$N@0Ns2=$J$I!".(BORB .$B4XO"=hM}$r9T$&%3!<%I$O!"%5!<%P$H%9%?%V$G

    .$B%5!<%P%/%i%9$K$O%5!<%P$N.(B main() .$B%a%=%C%I$,4^$^$l$^$9!#.(B .$B$3$N.(B main() .$B%a%=%C%I$G$O!"

    • ORB .$B$N%$%s%9%?%s%9$r@8@.$9$k.(B
    • .$B%5!<%P%s%H$N%$%s%9%?%s%9.(B (1 .$B$D$N.(B CORBA Hello .$B%*%V%8%'%/%H$N.$B?7$7$$.(B CORBA .$B%*%V%8%'%/%H$r%M!<%_%s%0%3%s%F%-%9%H$KEPO?$9$k$?$a!".(BCORBA .$B%*%V%8%'%/%H$N%*%V%8%'%/%H;2>H$r.$B?7$7$$%*%V%8%'%/%H$r!V.(BHello.$B!W$H$$$&L>A0$G%M!<%_%s%0%3%s%F%-%9%H$KEPO?$9$k.(B
    • .$B?7$7$$%*%V%8%'%/%H$,8F$S=P$5$l$k$N$rBT$D.(B
    // Copyright and License 
    
    import HelloApp.*;
    import org.omg.CosNaming.*;
    import org.omg.CosNaming.NamingContextPackage.*;
    import org.omg.CORBA.*;
     
    class HelloServant extends _HelloImplBase 
    {
        public String sayHello()
        {
    	return "\nHello world !!\n";
        }
    }
    
     
    public class HelloServer {
     
        public static void main(String args[])
        {
    	try{
    	    // create and initialize the ORB
    	    ORB orb = ORB.init(args, null);
     
    	    // create servant and register it with the ORB
    	    HelloServant helloRef = new HelloServant();
    	    orb.connect(helloRef);
     
    	    // get the root naming context
    	    org.omg.CORBA.Object objRef = 
    		orb.resolve_initial_references("NameService");
    	    NamingContext ncRef = NamingContextHelper.narrow(objRef);
     
    	    // bind the Object Reference in Naming
    	    NameComponent nc = new NameComponent("Hello", "");
    	    NameComponent path[] = {nc};
    	    ncRef.rebind(path, helloRef);
     
    	    // wait for invocations from clients
                java.lang.Object sync = new java.lang.Object();
                synchronized (sync) {
                    sync.wait();
                }
     
    	} catch (Exception e) {
    	    System.err.println("ERROR: " + e);
    	    e.printStackTrace(System.out);
    	}
        }
    }
     

    .$B%/%i%$%"%s%H$NHelloClient.java)

    .$B$3$N%"%W%j%1!<%7%g%s%/%i%$%"%s%H$G$O!"

    • ORB .$B$r:n@.$9$k.(B
    • .$B%M!<%_%s%0%3%s%F%-%9%H$X$N;2>H$r.$B%M!<%_%s%0%3%s%F%-%9%H$+$i!V.(BHello.$B!W$rC5$7!"$=$N.(B CORBA .$B%*%V%8%'%/%H$X$N;2>H$r.$B%*%V%8%'%/%H$N.(B sayHello() .$B%*%Z%l!<%7%g%s$r8F$S=P$7!"7k2L$rI=<($9$k.(B
    // Copyright and License 
     
    import HelloApp.*;
    import org.omg.CosNaming.*;
    import org.omg.CORBA.*;
     
    public class HelloClient 
    {
        public static void main(String args[])
        {
    	try{
    	    // create and initialize the ORB
    	    ORB orb = ORB.init(args, null);
     
    	    // get the root naming context
    	    org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
    	    NamingContext ncRef = NamingContextHelper.narrow(objRef);
    
    	    // resolve the Object Reference in Naming
    	    NameComponent nc = new NameComponent("Hello", "");
    	    NameComponent path[] = {nc};
    	    Hello helloRef = HelloHelper.narrow(ncRef.resolve(path));
     
    	    // call the Hello server object and print results
    	    String hello = helloRef.sayHello();
    	    System.out.println(hello);
     
    	} catch (Exception e) {
    	    System.out.println("ERROR : " + e) ;
    	    e.printStackTrace(System.out);
    	}
        }
    }
    
     

    .$B%"%W%l%C%H%/%i%$%"%s%H$NHelloApplet.java)

    .$B$3$N%"%W%l%C%H%/%i%$%"%s%H$G$O!"

    • ORB .$B$r:n@.$9$k.(B
    • .$B%M!<%_%s%0%3%s%F%-%9%H$X$N;2>H$r.$B%M!<%_%s%0%3%s%F%-%9%H$+$i!V.(BHello.$B!W$rC5$7!"$=$N.(B CORBA .$B%*%V%8%'%/%H$X$N;2>H$r.$B%*%V%8%'%/%H$N.(B sayHello() .$B%*%Z%l!<%7%g%s$r8F$S=P$7!"7k2L$rI=<($9$k.(B
    // Copyright and License 
    
    import HelloApp.*;
    import org.omg.CosNaming.*;
    import org.omg.CosNaming.NamingContextPackage.*;
    import org.omg.CORBA.*;
    import java.awt.Graphics;
     
    public class HelloApplet extends java.applet.Applet 
    {
        public void init() {
    	try {
    	    // create and initialize the ORB
                ORB orb = ORB.init(this, null);
    
                // get the root naming context
                org.omg.CORBA.Object objRef = 
    		        orb.resolve_initial_references("NameService");
                NamingContext ncRef = NamingContextHelper.narrow(objRef);
    
                // resolve the Object Reference in Naming
                NameComponent nc = new NameComponent("Hello", "");
                NameComponent path[] = {nc};
                Hello helloRef = HelloHelper.narrow(ncRef.resolve(path));
    
                // call the Hello server object and print results
                message = helloRef.sayHello();
     
    	} catch (Exception e) {
    	    System.out.println("HelloApplet exception: " + e.getMessage());
    	    e.printStackTrace(System.out);
            }
        }
     
    
        public void paint(Graphics g) 
        {
    	g.drawString(message, 25, 50);
        }
     
        String message = "";
    }
     

    Hello World .$B$N9=C[J}K!$H

    .$B$3$N%W%m%0%i%`Nc$N%=!<%9%3!<%I$O!".(B examples/hello .$B%G%#%l%/%H%j$K$"$j$^$9!#.(B .$B0J2<$N@bL@$G$O!".(BJava IDL .$B%M!<%`%5!<%PMQ$K%]!<%H.(B 1050 .$B$r;HMQ$G$-$k$3$H$rA0Ds$H$7$F$$$^$9!#I,MW$G$"$l$PJL$N%]!<%H$KJQ99$7$F$/$@$5$$!#$J$*!".(B1024 .$B0J2<$N%]!<%H$r;HMQ$9$k>l9g$O!".(BUNIX .$B%^%7%s$G$"$l$P%9!<%Q!<%f!<%6$N8"8B$,!".(BWindows95 .$B$*$h$S.(B NT .$B$G$"$l$P4IM}$G%9%i%C%7%e.(B (/) .$B$r;HMQ$7$F$$$^$9$,!".(B Windows95 .$B$*$h$S.(B NT .$B$G$O%P%C%/%9%i%C%7%e.(B (\) .$B$KCV$-49$($kI,MW$,$"$j$^$9!#.(B

    .$BCm.(B: Hello World .$B$r9=C[$7idltojava .$B$,I,MW$G$9!#.(Bidltojava .$B$O!".(BJDC (Java Developer Connection) Web .$B%Z!<%8$+$iL5=~$G%@%&%s%m!<%I$G$-$^$9!#$3$N%Z!<%8$K%"%/%;%9$9$k$K$O!".(BJDC .$B$N%a%s%P$G$J$1$l$P$J$j$^$;$s!#.(B JDC .$B$N%a%s%P$G$J$$>l9g$O!".(BJDC .$B$KEPO?$9$kI,MW$,$"$j$^$9!#.(B .$BEPO?NA$OL5NA$G$9!#.(B .$B%@%&%s%m!<%I%Z!<%8$O http://java.sun.com/j2se/1.5.0/docs/guide/rmi-iiop/toJavaPortableUG.html .$B3HD%;R!V.(B.bin.$B!W$N%U%!%$%k$,%@%&%s%m!<%I$5$l$k$N$G!".(B .$B$3$N%U%!%$%k$r$rF~NO.(B) .$B$7$FFbMF$r2rE`$7$F$/$@$5$$!#2rE`$7$J$$$H!".(Bidltojava .$B%3%s%Q%$%i$r;HMQ$G$-$^$;$s!#.(B

    • Hello.idl .$B%U%!%$%k$,CV$+$l$F$$$k%G%#%l%/%H%j$K0\F0$7$^$9!#.(B
      	cd docs/guide/idl/examples/hello
      
    • IDL .$B%U%!%$%k$KBP$7$F.(B idltojava .$B$r.$BCm.(B: idltojava .$B$O!"%G%U%)%k%H$N%W%j%W%m%;%C%5$r;HMQ$9$k$h$&$K%O!<%I%3!<%I$5$l$F$$$^$9!#.(BWindows .$B%^%7%s$G$O!"%G%U%)%k%H$G.(B MS Visual C++ .$B%W%j%W%m%;%C%5$r;HMQ$7$^$9.(BSolaris .$B%^%7%s$G$O!"%W%j%W%m%;%C%5$r.(B /usr/ccs/lib/cpp .$BFb$G8!:w$7$^$9!#.(B idltojava .$B$,;HMQ$9$k%W%j%W%m%;%C%5$O!".(BCPP .$B$H.(B CPARGS .$B$N.(B 2 .$B$D$N4D6-JQ?t$r@_Dj$9$k$3$H$GJQ99$G$-$^$9!#.(B CPP .$B$K$O!";HMQ$9$k%W%j%W%m%;%C%5$N%U%k%Q%9L>$r;XDj$7$^$9!#.(BCPARGS .$B$K$O!"%W%j%W%m%;%C%5$KEO$940A4$J0z?t$N%j%9%H$r@_Dj$7$^$9!#.(Bidltojava .$B$N%3%^%s%I9T$K.(B -fno-cpp .$B$rDI2C$9$k$3$H$K$h$j!"%W%j%W%m%;%C%5$r%*%U$K$9$k$3$H$b$G$-$^$9!#>\:Y>pJs$K$D$$$F$O!".(Bidltojava .$B%3%s%Q%$%i$H$H$b$K%@%&%s%m!<%I$5$l$?.(B idltojava .$B$N%j%U%!%l%s%9%Z!<%8$r;2>H$7$F$/$@$5$$!#.(B
      	idltojava  Hello.idl
      
    • HelloApp .$B%G%#%l%/%H%j$K$"$k%9%?%V$H%9%1%k%H%s$b4^$a!".(B.java .$B%U%!%$%k$r%3%s%Q%$%k$7$^$9!#.(B
      	javac *.java HelloApp/*.java
      
    • .$B%M!<%`%5!<%P$,F0:n$7$F$$$k$3$H$r3NG'$7$^$9!#.(B
      	tnameserv -ORBInitialPort 1050&
      
    • Hello .$B%5!<%P$r5/F0$7$^$9!#.(B
      	java HelloServer -ORBInitialPort 1050
      
    • .$B%5!<%P$r5/F0$7$?%7%'%k$H$OJL$N%7%'%k$+$i.(B Hello .$B%"%W%j%1!<%7%g%s%/%i%$%"%s%H$r java HelloClient -ORBInitialPort 1050
    • .$B%5!<%P$r5/F0$7$?%7%'%k$+$i!"%5!<%P$N%W%m%;%9$r=*N;$7$^$9.(B (.$B%5!<%P$O!"=*N;$5$l$k$+%^%7%s$,%7%c%C%H%@%&%s$5$l$k$^$G!"%*%Z%l!<%7%g%s$,8F$S=P$5$l$k$N$rBT$AB3$1$^$9.(B).$B!#.(B


    .$B%[!<%`.(B

    Copyright © 1995-98 Sun Microsystems, Inc. All Rights Reserved.