asp/asp.net中调用java写的类

在开发过程中偶尔会遇到要在ASP/ASP.Net中调用JAVA写的类,以实现之前已经用JAVA实现的功能,下面就以一个简单示例说明详细的使用方法:

 

 

1、创建java文件:
使用任何你喜欢的编辑器编辑以下内容:
public class hello
{
     public String helloWorld(String s)
     {
           if(s == null)
                return "";
           else
                return s;
     }
}
将此文件保存为hello.java

2、编译java文件为class:
command方式下运行:javac hello.java

3、将编译好的hello.class文件复制到c:\winnt\java\trustlib目录

4、创建以下文件,命名为test.asp:
<%
set javaObject = GetObject("java:hello")
msg = javaObject.helloWorld("Hello World")
set javaObject = nothing
response.write msg
%>

5、测试:
在IIS中创建虚拟目录test,将test.asp文件copy到此虚拟目录中,重启IIS,在ie中访问http://localhost/test/test.asp,页面显示“Hellow World”,表示调用成功。

在asp.net中可以与ASP同样的方法使用。

注:步骤2编译时需使用1.3.x的编译器,在1.4的jdk中编译虽正常,但本人在asp/asp.net中调用时显示No object for moniker错误

6、如果在java文件中import了其他jar文件包,在步骤3还需将这些.jar文件copy到c:\winnt\java\packages目录中,并在我的电脑-->属性-->高级-->系统变量,添加classpath变量,其值为引的jar文件的详细路径,如c:\winnt\java\packages\ldapfilt.jar;c:\winnt\java\packages\ldapjdk.jar;c:\winnt\java\packages\ldapsp.jar;.中间用分号隔开,最后用小数点结束

以上在中英文win2000、winXP中均测试通过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET调用Java文件需要使用JNI(Java Native Interface)技术。以下是调用Java文件的步骤: 1. 在ASP.NET项目添加对Java SDK的引用。 2. 在ASP.NET项目创建一个C#,该将用于加载Java调用Java方法。您可以使用“System.Runtime.InteropServices.DllImport”特性来加载Java。 3. 在ASP.NET项目创建一个Java,该将包含要调用方法。 4. 在Java实现要调用方法。 5. 在ASP.NET实例化Java调用Java方法。 以下是一个简单的示例: 1. 创建一个Java: ```java public class HelloWorld { public static String getHelloWorld() { return "Hello World!"; } } ``` 2. 在ASP.NET项目创建一个C#: ```csharp using System.Runtime.InteropServices; public class JavaBridge { [DllImport("jvm.dll")] private static extern IntPtr JNI_CreateJavaVM(out IntPtr pvm, out IntPtr penv, IntPtr args); [DllImport("jvm.dll")] private static extern int JNI_GetCreatedJavaVMs(out IntPtr ppJavaVMs, int bufsize, out int nVMs); [DllImport("jvm.dll")] private static extern int JNI_GetDefaultJavaVMInitArgs(IntPtr args); [DllImport("jvm.dll")] private static extern int JNI_GetCreatedJavaVMs(out IntPtr ppJavaVMs, int bufsize, out int nVMs); [DllImport("jvm.dll")] private static extern int JNI_DestroyJavaVM(IntPtr jvm); private static IntPtr jvm; static JavaBridge() { IntPtr pvm, penv; JNI_CreateJavaVM(out pvm, out penv, IntPtr.Zero); jvm = pvm; } public static string HelloWorld() { IntPtr env; jvm.AttachCurrentThread(out env, IntPtr.Zero); IntPtr cls = env.FindClass("HelloWorld"); IntPtr mid = env.GetStaticMethodID(cls, "getHelloWorld", "()Ljava/lang/String;"); IntPtr jstr = env.CallStaticObjectMethod(cls, mid); string result = Marshal.PtrToStringAnsi(env.GetStringChars(jstr, IntPtr.Zero)); env.ReleaseStringChars(jstr, IntPtr.Zero); return result; } } ``` 3. 在ASP.NET调用Java方法: ```csharp string result = JavaBridge.HelloWorld(); ``` 这将返回字符串“Hello World!”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值