刚接触Java几天,项目需要,使用Java调用can卡的dll,发现网上的帖子有很多不明确的地方,特此写之。
首先安装开发环境,考虑到兼容性,安装的JDK和eclipse都是32位的,正常安装结束后,需要添加一些环境变量(网上有说正常安装后,环境变量就不用配置了,我安装了两台电脑,都不行的,需要手动添加环境变量)。找到高级系统设置-->高级-->环境变量,在系统变量一栏添加如下信息:
变量名:JAVA_HOME,值:D:\A_Z_R_J\Java\jdk1.8.0_131,就是JDK的安装路径。
变量名:CLASSPATH,值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
在Path一栏,继续添加值:%JAVA_HOME%\bin;
总共需要添加三处,即JAVA_HOME、CLASSPATH和Path。
然后,使用Java调用第三方的DLL,一般来说,DLL都是使用C/C++语言编写的,Java不同于其他语言(如C++,C#等),使用C++可以直接调用DLL,而使用Java必须封装一层,才可以调用。或者这样讲:比如需要用Java调用A.dll,那么首先需要用Java编写一个代码B.Java,这个代码可以理解为C++里与dll配套使用的h文件,用来对dll里的函数进行声明(但又不同于h文件),然后使用Java命令,将这个B.Java代码编译成一个B.h文件,再拿这个B.h文件到C++里,制作对应的接口函数内容(因为这个B.h文件只有函数的声明,没有具体实现,需要新建B.cpp来写入其实现),制作完成后生成B.dll,这时拿这个B.dll回到B.Java的工程中,放置于其根目录下,或lib里,保证工程能搜索到就可以。这时可以新建一个main.Java代码,写一个主函数,来调用A.dll里的内容。写了这么多