告急文书 老兄,你省省吧。好象sun有一个com桥。不过效率。你还是用ASP吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 据我所知,java是可以调用dll的。不过具体方法蛮长的。建议你看一下Thinking in java 1st edition的附录A.里面写的比较具体。 java是可以调用dll的。使用本地方法: static { System.loadLibrary("*.dll"); //先载入dll库 }public native returntype methodname(params); //再构造dll库内同名的本地方法 木桥居士:你好!抱歉这么久才给你回复,不知你的问题是否一解决?下面是我成功过的一个简单例子:你可参阅 the javaTM tutorial一书的 java native interface一章。最后祝你成功!1.//file printmessage.javapublic class printmessage { private native void ShowMessage(String msg); //本地方法 static { System.loadLibrary("MsgImpl"); //载入MsgImpl.dll库 } public static void main(String[] args) { printmessage app = new printmessage(); if(args.length==1) app.ShowMessage(args[0]); else app.ShowMessage("Hello world!"); }}2.javac printmessage.java生成printmessage.class3.javah -jni printmessage生成printmessage.h4.手工编写MsgImpl.cpp文件:#include "jni.h"#include "printmessage.h"extern "C" JNIEXPORT void JNICALL //Java_printmessage_ShowMessage(JNIEnv* env, jobject, jstring jMsg) { const char* msg=env->GetStringUTFChars(jMsg,0); printf("Thinking in Java, JNI: %s\n", msg); env->ReleaseStringUTFChars(jMsg, msg);}5.生成MsgImpl.dll库,方法较多。如命令行方式: cl -Id:\jdk\include -Id:\jdk\include\win32 -Id:\vc\include -LD MsgImpl.cpp -FeMsgImpl.dll其中d:\jdk\include,d:\jdk\include\win32 ,d:\vc\include 与你的安装路径有关。此外需要将你的vc\lib路径设定到你的系统lib路径中去。 http://java.sun.com/docs/books/tutorial/native1.1/stepbystep/index.html lmy2000:是够长的,在java中访问dll,我已经知道了,但我的最终目的是要在JSP中通过JavaBeans去访问COM组件,这方面你知道吗?请告诉我! 这方面我可不知道了。看看各位大虾可有什么良策?不过我想java的idl号称是只要是支持corba,什么语言的程序都能相互调用吗?看看能不能试试。 COM 组件不支持 IDL的,只能依靠 COM Bridge 之类的软件了。 请教 正则表达式 一道关于java的static的知识的问题,请大侠帮助,谢谢 令人不可思议的一个java类型转换问题 自己做的一个图片工具类,运行时正常,但关闭窗口的时候出异常 高分求解!100分 ResultSet的一个问题 java的环境变量怎么设置啊 如何在Linux中安装设置jdk和tomcat,谢谢 怎样提高Applet在IE中调用的速度? 关于java文件最后的分发 请JAVA入行人帮帮忙: java调用DLL的新问题
使用本地方法:
static {
System.loadLibrary("*.dll"); //先载入dll库
}public native returntype methodname(params); //再构造dll库内同名的本地方法
下面是我成功过的一个简单例子:你可参阅 the javaTM tutorial一书的 java native interface一章。
最后祝你成功!1.
//file printmessage.java
public class printmessage {
private native void ShowMessage(String msg); //本地方法
static {
System.loadLibrary("MsgImpl"); //载入MsgImpl.dll库
}
public static void main(String[] args) {
printmessage app = new printmessage();
if(args.length==1)
app.ShowMessage(args[0]);
else
app.ShowMessage("Hello world!");
}
}2.javac printmessage.java生成printmessage.class
3.javah -jni printmessage生成printmessage.h
4.手工编写MsgImpl.cpp文件:#include "jni.h"
#include "printmessage.h"extern "C" JNIEXPORT void JNICALL //
Java_printmessage_ShowMessage(JNIEnv* env,
jobject, jstring jMsg) {
const char* msg=env->GetStringUTFChars(jMsg,0);
printf("Thinking in Java, JNI: %s\n", msg);
env->ReleaseStringUTFChars(jMsg, msg);
}5.生成MsgImpl.dll库,方法较多。如命令行方式:
cl -Id:\jdk\include -Id:\jdk\include\win32 -Id:\vc\include
-LD MsgImpl.cpp -FeMsgImpl.dll其中d:\jdk\include,d:\jdk\include\win32 ,d:\vc\include 与你的安装路径有关。
此外需要将你的vc\lib路径设定到你的系统lib路径中去。
不过我想java的idl号称是只要是支持corba,什么语言的程序都能相互调用吗?
看看能不能试试。