如何装Java的类转化成Dll文件?请高手进来指教,菜鸟看看可以!

lmjzw 2005-09-20 11:07:20
各位大哥:
小弟近日做了一个类似于中间件的东西,也就是一个控件(用Java写的),在这其中,这个控件会生成一些可供我们用户使用的类,当然也是Java的,但是现在由于需要,我要让这些生成的Java类(.class文件)转化成动态链接库(.dll文件),以便让我们的.net下能使用,请问各位高手,有什么方法???
小弟感激不尽!!!
...全文
584 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
TinyJimmy 2005-10-02
  • 打赏
  • 举报
回复
1. 自己写代码转换工具, 将java代码转换层c#代码. 然后编译
2. 如果允许, 在c#中使用Socket等方法和java程序进行通信, 用数据交互
3. Webservice, 实现过程调用.

要java和.net共享程序空间好像不太可能, 即使使用一些中间的技术转换也不一定稳定.


lmjzw 2005-10-02
  • 打赏
  • 举报
回复
楼上大哥,我想的也是直接生成Dll,你有什么好的办法吗?
bohemia 2005-10-01
  • 打赏
  • 举报
回复
这种方式,用java完全没有体会到java的用处,而且这样由于涉及到jni的应用,因此,很难进行移植。哎。如果可以的话,你直接写dll好了。
柯本 2005-10-01
  • 打赏
  • 举报
回复
1.建TestDLL.java
public class TestDLL
{

public static void testshow(String msg)
{
testshow0(msg);
}
private static native int testshow0(String msg);

static
{
System.loadLibrary( "TestDLL" );
}
public static void main( String[] args )
{
testshow("Hello!");
}
}
2. 编译成类
javac TestDLL.java
3.生成.h文件
javah -jni TestDLL
4.建TestDLL.c
#include <windows.h>
#include "TestDLL.h"
JNIEXPORT jint JNICALL Java_TestDLL_testshow0
(JNIEnv *env, jobject obj, jstring s)
{
const char* szStr = (*env)->GetStringUTFChars( env, s, 0 );
MessageBox(NULL,szStr,"TestDLL",MB_OK);
(*env)->ReleaseStringUTFChars( env, s, szStr );
}
5.生成DLL
cl -Id:\j2sdk1.4.2_09\include -Id:\j2sdk1.4.2_09\include\win32 -LD TestDLL.c user32.lib
6.测试结果
java TestDLL
你将会看到java调用windwos DLL的MessageBox所产生的Hello对话框
环境:
JDK+VC
lmjzw 2005-09-30
  • 打赏
  • 举报
回复
楼上大哥:
我看了一下JNI,可是没有看到怎魔生成.Dll文件的??请问能不能细说一下!
柯本 2005-09-23
  • 打赏
  • 举报
回复
jni的资料:
http://java.sun.com/docs/books/tutorial/native1.1/
中文资料就少了(因为很少有人用)<<Think In Java>>的附A有部分介绍,你可参考一下
<<Think In Java>>网上有很多,这里就可下:
www.infoxa.com
nonocast 2005-09-22
  • 打赏
  • 举报
回复
ms和java可以互相操作
已确认
nonocast 2005-09-22
  • 打赏
  • 举报
回复
JNI
在DLL中LoadLibrary("jvm.dll");
lmjzw 2005-09-22
  • 打赏
  • 举报
回复
大哥,你有JNI的电子书吗?可不可以传我一份!怎么就你一个人回答?哪我不是这100分就给你一个了?
柯本 2005-09-21
  • 打赏
  • 举报
回复
好像不可以
SUN 的JAVA 和 M$的.NET本来就是一对冤家
lmjzw 2005-09-21
  • 打赏
  • 举报
回复
可不可以直接用JAVA生成DLL文件??
我想做的是我生成的东西,不管是JAVA还是.net都可以使用的,这样就可以实现控件共享!如果不用C调用JVM,还有其它办法吗?请教楼上!
柯本 2005-09-21
  • 打赏
  • 举报
回复
最简单的方法就是将你的JAVA程序移植到J#下
另外.你可用JNI,用C调用JVM来执行你的CLASS,再将该C封装成DLL

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧