当前位置: 代码迷 >> J2EE >> JAJA程序有类似exe+dll的机制么?该如何处理
  详细解决方案

JAJA程序有类似exe+dll的机制么?该如何处理

热度:87   发布时间:2016-04-17 23:13:38.0
JAJA程序有类似exe+dll的机制么?
VC可以将一些基础的功能封装在dll中,供不同的程序调用。

pak+jni不是,因为jni大部分是用C++开发的。
.so是不?
------解决思路----------------------
Java程序可以通过工具打包成独立运行的EXE
JNI和JNA可以调用其他语言制作的DLL
.so是linux下的“dll”,一般是用C/C++的编译器制作的

用Java配合COM,可以实现EXE和DLL反调用Java制作的JAR包里的功能
实际运用时有各种各样的问题,建议不要这么做

不担心运行速度的话,可以考虑WebService
参考:http://nopainnogain.iteye.com/blog/791525/

个人认为,Java天生就是相对上层的语言,很多底层的功能都是靠JNI调用本地的C语言的库函数实现的
反过来的需求应该是相对的比较少的
------解决思路----------------------
具体应用场景是什么?
------解决思路----------------------
引用:
VC可以将一些基础的功能封装在dll中,供不同的程序调用。

pak+jni不是,因为jni大部分是用C++开发的。
.so是不?

Java 可以将一些基础的功能封装在jar中,供不同的程序调用。

Java程序有类似exe+dll的机制,就是jar+jar


------解决思路----------------------
引用:
Java程序可以通过工具打包成独立运行的EXE
JNI和JNA可以调用其他语言制作的DLL
.so是linux下的“dll”,一般是用C/C++的编译器制作的

用Java配合COM,可以实现EXE和DLL反调用Java制作的JAR包里的功能
实际运用时有各种各样的问题,建议不要这么做

不担心运行速度的话,可以考虑WebService
参考:http://nopainnogain.iteye.com/blog/791525/

个人认为,Java天生就是相对上层的语言,很多底层的功能都是靠JNI调用本地的C语言的库函数实现的
反过来的需求应该是相对的比较少的
大赞
------解决思路----------------------
引用:
JNI可以调用C++类的成员函数不?
如果可以,
JNI的C类可以被JAVA的类继承不?


Q:JNI可以调用C++类的成员函数不?
A:一般不是直接去调用的,而是Java调用自己做的JNI DLL,JNI DLL再调用C++的成员函数
JNI DLL很像一个Wrapper,起着承上启下的作用

Q:JNI的C类可以被JAVA的类继承不?
A:站在Java语法的层面应该是可以,但是大多数情况下都没有必要,或者说不建议这么做
为了程序条理清晰,便于维护,JNI的C类一般都是和DLL一一对应的
既然一一对应了,再引入继承,会导致DLL那边修改的时候,不好判断对Java这边的影响,引入不必要的麻烦

参考:
http://bbs.bccn.net/thread-437689-1-1.html
2楼是JNI版的示例程序

Java里大约就是这么一个调用的声明,继承或者不继承都没啥大意义,知道它对应着JNI DLL里面的一个函数就足够了
private static native void shutdownMonitor();
  相关解决方案