使用vc++ 6.0制作dll,并在java程序中使用(转)
雖然JAVA的程式都必須在JAVA的虛擬機器上執行,但是我們可以在這部機器中打一個洞,讓JAVA程式可以直接溝通實際的機器
JNI是一種讓JAVA程式可以外接外部程式的一種機制,讓JAVA程式更具有擴充性,下面將示範一個簡單的範例,這個範例中說明JAVA程式如何與C語
言接軌,事實上昨天所談的Prolog就是利用這種方式使Java程式可以使用prolog,透過dll和native的方式來達成這項任務,經過這樣的
測試與實驗之後讓我不得不佩服java這個程式語言
你不需要擔心程式方面的問題,因為底下的程式架構都相當簡單,主要只是讓我們體驗一下
工具介紹:我將使用visual c++ 6.0來製作dll,使用java sdk 1.4來編譯我的java
java部分的實作
程式碼如下(HelloWorld.java):
class HelloWorld {
public native void displayHelloWorld();//左方的native型態是通知Java這個函數會使用到外部函數
static {
System.loadLibrary("hello");//左方的程式碼代表我要載入hello.dll的動態連結,hello.dll的製作我在稍後會做介紹
}
public static void main(String[] args) ...{
new HelloWorld().displayHelloWorld();
}
}
當你完成上述的程式之後,將這個程式存檔為''HelloWorld.java''先用''javac
HelloWorld.java''這個指令將它組譯成HelloWorld.class,然後使用''javah
HelloWorld''產生HelloWorld.h,在HelloWorld.h中我們知道我們要實作一個函數
Java_HelloWorld_displayHelloWorld(JNIEnv *, jobject); 接下來我將介紹如何完成這個函數
&
相关文档:
tomcat启动web服务的时候总是会有8小时的时差,
琢磨了好久,最简单的办法就是
找到文件夹jdk1.6.0_07\jre\lib\zi\Etc
这里边都是一些时区文件GTM+1,GTM+2,GTM+3....
备份一份Etc
拷贝N份GTM+8文件(中国的时区是GTM+8)
把GMT+8文件名改成GTM+1,GTM+2,GTM+3....
覆盖掉原来的Etc里边的文件
重启tomcat问题解决 ......
Bean Serializable Interface 的接口让BEAN可以串行化,将其变成一个可保存为以后使用的二进制流。当一个BEAN被系列化到磁盘上或者其他任何地方,其状态被保存起来,其中的属性值也不会改变。在BEAN的规范中,JSP并没有要求BEAN实现Serializable接口。但是,如果您希望自己控制您所创建的组件的serialization进程,或者您想 ......
JAVA程序员面试之葵花宝典
1、面向对象的特征有哪些方面
1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:继承是一种联结类的层次模 ......
package org.bupt.test;
import java.util.ArrayList;
class MyResource {
ArrayList<Integer> arrList= new ArrayList<Integer>();
public MyResource(ArrayList<Integer> arrList) {
this.arrList = arrList;
&nbs ......