世界因你而精彩  
          日歷
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345
          統(tǒng)計
          • 隨筆 - 169
          • 文章 - 1
          • 評論 - 138
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿(9)

          隨筆分類(163)

          隨筆檔案(154)

          文章檔案(1)

          新聞檔案(1)

          相冊

          收藏夾(1)

          個人雜雜

          友情鏈接

          自學(xué)考試

          資料搜索

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 359384
          • 排名 - 153

          最新評論

          閱讀排行榜

          評論排行榜

           
          java調(diào)用.dll
          編寫java程序如:javacall.java
          編譯java程序,如將javacall.java放到c:\test下(都可以,沒有固定) javac javacall.java
          (當(dāng)然你要設(shè)置環(huán)境變量:path
            設(shè)置:   
            我的電腦-屬性-高級-環(huán)境變量中,有PATH(大小寫都  
            可以)這個變量(沒有就自己新建立一個)  
            變量名:PATH  
            變量值:javac等程序所在路徑.  
            例如我的JDK安裝在D:\JDK1.4中,那么我在D:\JDK1.4目錄  
            下可以搜索一下javac,得到它的位置:D:\JDK1.4\jdk\bin,  
            現(xiàn)在變量值就可以寫成  
            變量值:[   .;D:\JDK1.4\jdk\bin;   ]

          或者先設(shè)置用戶變量,系統(tǒng)變量再調(diào)用
          在桌面上右鍵點擊“我的電腦”

            然后屬性->高級->環(huán)境變量 ->系統(tǒng)變量(用戶變量也可以)->新建變量名里面輸入JAVA_HOME;  

            變量值里面輸入D:\JDK1.4\jdk\

            然后再新建一個CLASSPATH

            其值為:
                .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar (最前面的.;一定要寫)  
          )
          生成頭文件(javacall.h) javah -classpath "c:\test" javacall (記得要寫上路徑)
          建立新DLL工程如:mycalldll(如放在:C:\Documents and Settings\Administrator\桌面\71info\)
          將javacall.h復(fù)制到VC工程目錄中(如:C:\Documents and Settings\Administrator\桌面\71info\mycalldll\mycalldll\),然后編譯,如果編譯說找不到j(luò)ni.h文件,可以將jni.h復(fù)制到工程目錄中,還可將javacall.h文件中的#include <jni.h>改為#include "jni.h",
          將生成的.dll(如C:\Documents and Settings\Administrator\桌面\71info\mycalldll\mycalldll\Debug\mycalldll.dll)復(fù)制到C:\j2sdk1.4.2_05\bin則可在eclipse運行了

          posted on 2006-07-03 14:09 張秀蘭 閱讀(6821) 評論(8)  編輯  收藏
          評論:
          • # re: java調(diào)用.dll程序   Posted @ 2006-07-07 21:47
            你好!
            我最近遇到這樣的問題,我開始在cmd下編譯一個java文件用來調(diào)用vc的dll,做法按網(wǎng)上一般步驟做的,生成的dll后和其class,.h還有dll都在同一個目錄下,然后我在cmd下運行成功,然后我把這個類修改了一下,就是不讓此類中有main函數(shù),然后在放到我的工程里,開發(fā)工具是eclipse,但運行總是報錯,錯誤如下:
            Exception in thread "main" java.lang.UnsatisfiedLinkError: SendDESCommand
            at testDdl.sendSignal.SendDESCommand(Native Method)
            at testDdl.MainTest.main(MainTest.java:21)
            不知道這是怎么回事,還請你給予指教,謝先。
            因為在cmd下運行的時候沒有用包,在工程里這個java文件會有一個testDdl包,會不會是這個原因?
            有沒有其它方法可以解決?謝謝了先。
            回復(fù)的時候希望你能回復(fù)到我的信箱:jwzhang0404@yahoo.com.cn  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序   Posted @ 2006-07-08 11:45
            能告訴我你的信箱么,我想通過郵件跟你聯(lián)系,我的是jwzhang0404@yahoo.com  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2006-07-10 09:38
            你把你的程序貼出來,看下,行不?  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  請教 Posted @ 2006-09-26 15:10
            你好,你這個方法是生成一個java可調(diào)用的dll吧!?!?能貼出代碼看看你是怎么調(diào)用dll的嗎?!
            謝謝  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2006-09-27 16:20
            不是的,是java調(diào)用一個如用delphi寫的.dll.
              回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2006-09-27 16:27
            // mycalldll.cpp : 定義 DLL 的初始化例程。
            //

            #include "stdafx.h"
            #include "mycalldll.h"

            #ifdef _DEBUG
            #define new DEBUG_NEW
            #endif

            //
            // 注意!
            //
            // 如果此 DLL 動態(tài)鏈接到 MFC
            // DLL,從此 DLL 導(dǎo)出并
            // 調(diào)入 MFC 的任何函數(shù)在函數(shù)的最前面
            // 都必須添加 AFX_MANAGE_STATE 宏。
            //
            // 例如:
            //
            // extern "C" BOOL PASCAL EXPORT ExportedFunction()
            // {
            // AFX_MANAGE_STATE(AfxGetStaticModuleState());
            // // 此處為普通函數(shù)體
            // }
            //
            // 此宏先于任何 MFC 調(diào)用
            // 出現(xiàn)在每個函數(shù)中十分重要。這意味著
            // 它必須作為函數(shù)中的第一個語句
            // 出現(xiàn),甚至先于所有對象變量聲明,
            // 這是因為它們的構(gòu)造函數(shù)可能生成 MFC
            // DLL 調(diào)用。
            //
            // 有關(guān)其他詳細(xì)信息,
            // 請參閱 MFC 技術(shù)說明 33 和 58。
            //

            // CmycalldllApp

            BEGIN_MESSAGE_MAP(CmycalldllApp, CWinApp)
            END_MESSAGE_MAP()


            // CmycalldllApp 構(gòu)造

            CmycalldllApp::CmycalldllApp()
            {
            // TODO: 在此處添加構(gòu)造代碼,
            // 將所有重要的初始化放置在 InitInstance 中
            }


            // 唯一的一個 CmycalldllApp 對象

            CmycalldllApp theApp;


            // CmycalldllApp 初始化

            BOOL CmycalldllApp::InitInstance()
            {
            CWinApp::InitInstance();

            return TRUE;
            }

            #include "javacall.h"
            JNIEXPORT jint JNICALL Java_javacall_shanfei (JNIEnv *, jclass, jint p)
            {
            int j = p*p;
            return j;
            }


            mycalldll.h

            /* DO NOT EDIT THIS FILE - it is machine generated */
            #include "jni.h"
            /* Header for class javacall */

            #ifndef _Included_javacall//java的head
            #define _Included_javacall
            #ifdef __cplusplus
            extern "C" {
            #endif
            /*
            * Class: javacall
            * Method: shanfei
            * Signature: (I)I
            */
            JNIEXPORT jint JNICALL Java_javacall_shanfei
            (JNIEnv *, jclass, jint);

            #ifdef __cplusplus
            }
            #endif
            #endif



            //java
            /**
            * @author zhangxl
            * 創(chuàng)建日期 2006-2-8
            */
            public class javacall
            {
            static
            {
            System.loadLibrary("Maxdll");
            }
            public native static String multiply(int i, int j, String st);
            public static void main(String[] args)
            {
            javacall jc = new javacall();
            int i = 4;
            int ii = 5;
            String stj;
            stj = jc.multiply(i, ii, "蘭test");
            System.out.println(i+" the shanfei result is :"+stj);
            }
            }  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  田克山 Posted @ 2007-06-25 00:44
            請問財客在線記帳軟件好用嗎?

            最近朋友向我推薦一款網(wǎng)上免費在線記帳軟件——財客在線記帳網(wǎng):www.coko365.com

            我也不知道是否好用
            但是朋友卻覺得功能十分強大,安全性和穩(wěn)定性比較高!不知道這里是否有人使用過呢?
            可以發(fā)表一下看法嗎?  回復(fù)  更多評論   

          • # re: java調(diào)用.dll程序  張秀蘭 Posted @ 2007-06-27 12:49
            財客在線記帳網(wǎng):www.coko365.com 這個我沒有用到.
            其實我較少使用就是了,只是偶爾有時間才會去用用.
            不過,這東西也不一定說功能有多強大就行,最主要是看他的安全性和您的實用性.
              回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
           
          Copyright © 張秀蘭 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 伊通| 富顺县| 汝城县| 沽源县| 海丰县| 峨边| 阜新| 巴林右旗| 乡宁县| 大兴区| 博客| 从江县| 彭山县| 封丘县| 双流县| 怀远县| 泗阳县| 峨眉山市| 扶沟县| 奎屯市| 偃师市| 扶风县| 栾川县| 峨眉山市| 阿鲁科尔沁旗| 江源县| 绩溪县| 兴仁县| 民乐县| 进贤县| 壤塘县| 威信县| 城固县| SHOW| 东乡| 青龙| 宜川县| 安仁县| 浙江省| 黑龙江省| 邯郸县|