Wrap a Java class in a COM object (this howto is deprecated)Tag(s): DEPRECATED
Use the Microsoft javareg utility to register a java class as a COM server. Once registered, the Java class will be visible from all languages that can deal with COM objects. I am giving here some examples in VbScript, JScript, ASP and Powerbuilder.
NOTE: The class can compiled with any JDK but the actual execution will use the Microsoft JVM installed on the system.
The javareg utility is part of the Microsoft Java SDK which can be freely downloaded from the Microsoft Web site.
First a simple Java class.
[JavaSays.java]
package JavaCom;
public class JavaSays {
public String Hello() {
return "Hello world" ;
}
public String Say(String what) {
return what ;
}
}javareg /register /class:JavaCom.JavaSays /progid:JavaCom.JavaSays md c:\Windows\Java\TrustLib\JavaCom copy JavaSays.class c:\windows\java\trustlib\javacom
VbScript and JScript are useful scripting tools. They are now part of a regular Windows installation (or IE). If your Windows installation is too old, you can download the Windows Scripting Host from the Microsoft Web site.
[VbScript TestJavaCom.vbs]
' VBSCRIPT connect to a Java COM object
Dim objJava
Set objJava = WScript.CreateObject("JavaCom.JavaSays")
strFromJava = objJava.Hello
MsgBox strFromJava, _
0, _
"JAVA COM OUTPUT"
strFromJava = objJava.Say("Displayed by VbScript via a Java object")
MsgBox strFromJava, _
0, _
"JAVA COM OUTPUT"
[JScript TestJavaCom.js]
// JSCRIPT connect to a Java COM object
var objJava = WScript.CreateObject("JavaCom.JavaSays")
var WSHShell = WScript.CreateObject("WScript.Shell");
strFromJava = objJava.Hello()
WSHShell.Popup(strFromJava,
0,
"JAVA COM OUTPUT",
0 );
strFromJava = objJava.Say("Displayed by JScript via a Java object")
WSHShell.Popup(strFromJava, 0, "JAVA COM OUTPUT", 0 );
[ASP TestJavaCom.asp]
<%
Set objJava = Server.CreateObject("JavaCom.JavaSays")
%>
<BR>
test 1 : <% =objJava.Hello() %><BR>
test 2 : <% =objJava.Say("From ASP via a Java Object") %>
[PowerBuilder]
OLEObject objJava
string strFromjava
objJava = CREATE OLEObject
objJava.ConnectToNewObject("JavaCom.JavaSays")
strFromJava = objJava.Hello()
MessageBox("From PB via JavaCom", strFromJava)
strFromJava = objJava.Say("Displayed by PB via a Java object")
MessageBox("From PB via JavaCom", strFromJava)
DESTROY objjava
See also Sun's Javabeans bridge for ActiveX.
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com