2011년 8월 4일 목요일

Using JavaBean Bridge for Active X Control

[ 설명 ]
Java 로 개발 된 Lib(jar) 를 ocx 로 변환 할 수 있는 것 같아서 해봤다
최종적으로 ocx 를 배포 했을 때, JRE 환경과 참조되는 jar 등이 있을 때 어떻게 되는지 확인 해 봐야 한다

[ 테스트 실행 환경 ]
- JDK 1.6.0_26
- Visual Studio 6.0 ( sp6 )
- 간단한 jar 파일 ( 소스는 아래와 같다 )

package choi.test;

public class Tester {

private String _hello = "Hello World!";

public static void main (String[] args) {

}  

    public String getHello() {
    return _hello ;
    }
 
    public void setHello(String s) {
    _hello = s;
    }
}


[ 환경변수 설정 ]
- 사용하는 JDK 의 경로가 JAVA_HOME 에 등록 되어 있어야 한다
예 > c:\Program Files\Java\jdk1.6.0_26

[ 방법 ]
- 다음과 같이 자신의 JRE_HOME root 에 폴더를 만든다 ( c:\Program Files\Java\jre6\axbridge\bin )
- cmd 실행
- CD c:\Program Files\Microsoft Visual Studio\VC98\Bin
- VCVARS32.BAT 을 일단 실행해야 한다
- 그리고 clsid 생성을 위해 c:\Program Files\Microsoft Visual Studio\COMMON\Tools\GUIDGEN.EXE 를 실행하여 clsid 를 만들어 아래의 명령에 적용 한다 ( 단, 매번 생성하지 말야야 한다. jar 하나 당 한개 )
- packager -clsid {3129823F-8366-4469-A04A-EF4229C892CF} -out "c:\Program Files\Java\jre6\axbridge\bin" -reg "c:\Program Files\Java\jre6\axbridge\bin\Tester.jar" choi.test.Tester
** clsid 를 넣지 않으면 자동 생성 된다
** out 은 위에서 만든 경로를 지정 한다 ( 스페이스가 있는 경로 이므로 쌍따옴표로 묶어 준다 )
** reg 에 사용되는 Package 명은 choi.test.Tester 처럼 Main Class 의 Full Name 을 사용해야 한다

[ 결과 ]
- 델파이에서는 2개의 메소드(getHello, setHello) 잘 동작 한다. 그런데, 로딩될 때 시간이 좀 걸리는 것 같다

[ 참고사이트 ]
http://www.calsoftlabs.com/whitepapers/java-beans.html

http://blog.naver.com/PostView.nhn?blogId=sj99yang&logNo=140001494736&viewDate=¤tPage=1&listtype=0

http://www.javastudy.co.kr/docs/outsourcing/javacomponent.html

http://www.rgagnon.com/javadetails/java-0045.html

http://java.sun.com/products/plugin/1.3/docs/script.html

http://download.oracle.com/javase/tutorial/javabeans/

http://download.oracle.com/javase/1.4.2/docs/guide/beans/axbridge/developerguide/index.html

http://javaactivex.com/

댓글 없음: