`

Eclipse直接完成JAVA调用C/C++ (Eclipse上使用CDT结合MinGW)

 
阅读更多

网上都有很多在 windows平台下JAVA调用C/C++方法的介绍说明。但是,在此过程中,绝大多数都是利用VC等其他工具来进行DLL的生成。试想一下,在 eclipse平台开发了JAVA,突然又要打开VC的工作环境,多不爽!何况如果内存不够的话,还得先把其中一个退出。到需要再重新打开,多费劲啊!! 现在,我们让这一系列的工作都在eclipse上完成!

 

首先、安装eclipse3.2。

这个安装过程我就不在这里介绍了,大家都懂。

 

第二、安装MinGW。

1.用户可以直接登陆以下地址下载MinGW http://prdownloads.sourceforge.net/mingw/MinGW-5.0.3.exe

2. 鼠标双击执行安装文件,选择“ Download and Install ”,下一步

3.选择软件安装的版本,这里我们选择“ Candidate ”,下一步

4.选择安装的编译器

   1) g++ compiler

   2) g77 compiler

   3) Objective C Compiler

   4) MinGW Make

   下一步

5. 选择安装路径,下一步

   这里用默认路径C:\MinGW

6.  等待下载软件版本及安装。安装会自动完成,但是你要保证你的网络是可用的。

 

第三、MinGW的环境变量设置

1. 系统变量里面的 Path 添加“ MinGW 安装目录 \bin; ( 例如 ;C:\MinGW\bin;)

2. 系统变量里添加 C_INCLUDE_PATH,值为:C:\MinGW\include

3. 系统变量里添加 CPLUS_INCLUDE_PATH,值为:C:\MinGW\include\c++\3.4.2;C:\MinGW\include\c++ \3.4.2\mingw32;C:\MinGW\include\c++\3.4.2\backward;C:\MinGW\include     (这里要注意你的版本号哦)

 

第四、做一个小技巧修改

   先将 MinGW 安装目录 \bin 底下的 mingw32-make.exe复制一份副本,将副本 更名为 make.exe (因为eclipse默认用了make,不是mingw32-make,当然,你也可以修改eclipse的设定,自己喜欢吧)。

 

第五、安装CDT插件。

1、 Eclipse 的网站上面找到 CDT 插件的压缩包,然后下载至电脑硬盘上;

   下载地址: (http://www.eclipse.org/cdt/downloads.php )

2、就像你安装其他安装插件一下的方式安装CDT插件吧。怎么安装不是关键问题,按你喜欢,能用就可以了。

 

第六、简单介绍CDT的使用吧。

1.  新建一个 C++ 项目 点击菜单栏上的 File / New / Standard Make C++ Project

   如果想建立一个 C 项目则选择 Standard Make C Project;

2.  输入 New Project 名字,直接按 Finish 完成 Project 添加

3. 给项目新建一个的源文件,点击菜单栏上的 File / New / File

4. 接着出现文件添加的窗口,在 File Name 栏里面写上文件名

   C++ 的源文件后缀名为 cpp hello.cpp

   C 的源文件后缀名为 c hello.c

5.

编辑刚刚添加的 hello.cpp 文件,添加一段 C++ 的代码,内容如下:

#include  < iostream >
using   namespace  std;  
  
int  main()  
{  
    cout
<< " hello world!!\n " ;  
    
return   1 ;
}
 

若你新建的项目为 C 的话,则需添加相应的 C 代码,内容如下:

#include  " stdio.h "
int  main() {
   printf(
" Hello world!\n " );
   
return   1 ;
}

添加一个编译命令

Target Name:MAKE FILE

Builder Command:g++ hello.cpp -g -o run

这里如果是 c 环境就改成 gcc hello.c -g -o run

双击 MAKE FILE ,此时 Eclipse 在项目文件的根目录创建一个 run.exe 的文件,此文件根据 hello.cpp 代码编译生成。

双击 run.exe 可以预览效果,控制台输出结果:Hello world!

 

第七、让我们开始进入真正的工作吧!

The Java side

1 .建立 Java 工程 JavaHello ,编写 java

// Hello.class ,这里主要包名,因为后面的函数命名同包名也有联系的。

package  test;
class  Hello
{
    
public   native   void  sayHello();
    
static
    
{
        System.loadLibrary(
" hello " );
    }

    
public   static   void  main(String[] args)
    
{
        Hello h 
=   new  Hello();
        h.sayHello();
    }

}

 

2.用命令生成头文件

bin 目录下建立批处理文件,名称随意,用 bat 作为扩展名就行了。这里命名为 run.bat

内容为:

set java_home = F:\dev - software\dev - soft\jdk\jdk1. 5.0
set path
=% java_home % \bin
set class_path
=% java_home % \lib; % java_home % \lib\dt.jar; % java_home % \lib\tools.jar
javah 
- jni test.Hello
@pause

保存,执行(可以双击执行,也可在eclipse的“Run As”调用bat批处理文件来执行),则在 bin 目录下生成 test_Hello.h 文件。内容为:

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

#ifndef _Included_test_Hello
#define  _Included_test_Hello
#ifdef __cplusplus
extern   " C "   {
#endif
/*
 * Class:     test_Hello
 * Method:    sayHello
 * Signature: ()V
 
*/

JNIEXPORT 
void  JNICALL Java_test_Hello_sayHello
  (JNIEnv 
* , jobject);

#ifdef __cplusplus
}

#endif
#endif

The C side Compiling the Library

1. 建立标准 C 工程 Cpro ,并生成 dll 文件

1 将生成的头文件 test_Hello.h 拷贝到 C 工程 Cpro

2 编写 C Hello.c ,内容为:

#include  < jni.h >
#include 
" test_Hello.h "
#include 
< stdio.h >
JNIEXPORT 
void  JNICALL Java_test_Hello_sayHello
(JNIEnv 
* env, jobject obj)
{
printf(
" Hello world !\n " );
return ;
}

3 C 工程 Cpro 下建立 hello.def 文件(用于定义导出的函数),内容为:

EXPORTS
Java_test_Hello_sayHello

4 )在 C 工程 Cpro 下建立 makefile 文件,内容为:

step1:
    gcc 
- - I " F:\dev-software\dev-soft\jdk\jdk1.5.0\include "   - I " F:\dev-software\dev-soft\jdk\jdk1.5.0\include\win32 "   - o hello.o Hello.c
step2:
    gcc 
- shared  - o hello.dll hello.o hello.def

5) Make Targets 视图下,为 Cpro 工程添加两个 Make Target (对应 makefile 文件的内容),如下图:

6 Make Targets 视图下双击 step1 ,在 C 工程 Cpro 生成 hello.o 文件。

7)  Make Targets 视图下双击 step1 ,在 C 工程 Cpro 生成 hello.dll 文件。

JAVA 调用 DLL

1.  hello.dll 拷贝到 Java 工程 JavaHello 下。

2.  运行 Hello.java ,则可以看到输出结果:

Hello world!

 

注:如果上面不是 C 工程而是是 C++ 工程

1 Hello.c 改为 Hello.cpp

2 makefile 内容改为:

 

step1:
    g
++    - - I " F:\dev-software\dev-soft\jdk\jdk1.5.0\include "   - I " F:\dev-software\dev-soft\jdk\jdk1.5.0\include\win32 "   - o hello.o Hello.cpp
    
step2:
    g
++   - shared  - o hello.dll hello.o hello.def
3) 其他的几乎都不用改变也可以。

分享到:
评论

相关推荐

    eclipse直接完成java调用C或C++借鉴.pdf

    本文旨在详细介绍如何在Eclipse平台上实现Java对C/C++的直接调用,避免使用额外的工具如Visual C++来生成DLL文件。这不仅提高了开发效率,还确保了整个开发流程在统一的环境中进行。 #### 二、准备工作 1. **安装...

    如何使用Eclipse编译C,C++,JAVA程序

    - **MinGW的介绍**:MinGW是一个轻量级的开发环境,它包含了一系列开源工具,使得开发者可以在Windows上使用GCC来编译C和C++代码。 - **MinGW的下载**:你可以从MinGW官网或者第三方源下载MinGW安装包。 - **...

    Eclipse3.06 + MinGW3.1配置标准C_C++开发环境

    此外,需将MinGW目录下的`mingw32-make.exe`重命名为`make.exe`,以便Eclipse调用。 2. **安装Eclipse**:安装完成后,将CDT插件包中的`features`和`plugins`目录复制到Eclipse的安装目录下,以启用C/C++开发功能。...

    JNI技术手册 c/c++调用java

    #### 五、Eclipse + CDT + MinGW 进行Java调用C/C++ - **安装Eclipse 3.2。** - **安装MinGW:** - 下载并安装。 - 设置环境变量。 - **安装CDT插件:** - 下载并安装。 - **使用CDT:** - 新建C++项目。 - ...

    eclipse 开发c/c++

    C 和 C++ 语言都是世界上最流行且使用最普遍的编程语言, 因此 Eclipse 平台(Eclipse Platform)提供对 C/C++ 开发的支持一点都不足为奇。 因为 Eclipse 平台只是用于开发者工具的一个框架,它不直接支持 C/C++;它...

    Eclipse+CDT+MinGW+gdb安裝手冊

    至此,一个完整的Eclipse+CDT+MinGW+gdb开发环境已经搭建完成,你可以开始编写、编译和调试C/C++代码了。通过这种方式,开发者可以享受到Eclipse的强大功能,同时利用MinGW和gdb进行高效的代码构建和调试,提升开发...

    eclips 运行c/c++程序的插件包mingw

    Eclipse是一款广泛使用的开源集成开发环境(IDE),主要用于Java编程,但通过添加特定插件,也可以支持C/C++等其他语言的开发。在Eclipse中运行C/C++程序,需要安装一个名为MinGW(Minimalist GNU for Windows)的...

    用Eclipse平台进行C_C++开发.pdf

    【描述】: 本文将深入探讨如何利用Eclipse平台进行C/C++编程,重点介绍Eclipse C/C++ Development Toolkit (CDT)的功能和使用方法。 【标签】: "C语言", "Eclipse IDE", "CDT" 【正文】: Eclipse,最初设计为Java...

    c,c++编译器-eclipse,mingw使用教程.docx

    【Eclipse和MinGW简介】 Eclipse是一款强大的开源开发集成环境,...总之,Eclipse与MinGW的结合为C/C++开发者提供了一个功能全面、易于使用的开发环境,无论对于初学者还是经验丰富的程序员,都是一个值得尝试的选择。

    最新Eclipse&CDT + MinGW + Qt 在XP下的安装

    本文将详细介绍如何在Windows XP系统上安装和配置Eclipse、CDT(C/C++ Development Toolkit)、MinGW(Minimalist GNU for Windows)以及Qt库,以创建一个强大的C++和Qt应用开发环境。 首先,Eclipse是一款广泛应用...

    Eclipse C、C++(CDT)开发入门.pdf

    Eclipse CDT(C/C++ Development Tooling)是Eclipse集成开发环境(IDE)的一个插件,专为C和C++开发者设计。本教程“Eclipse C、C++(CDT)开发入门.pdf”旨在帮助初学者配置和入门Eclipse CDT,以便于高效地进行C...

    eclipse MInGW.rar

    Eclipse 是一个强大的开源集成开发环境(IDE),广泛应用于Java、C、C++等多种编程语言。Eclipse MINGW.rar 文件则是一个包含了Eclipse IDE 用于C/C++开发的版本,特别针对Windows操作系统进行了优化,因为MINGW是...

    如何使用Eclipse编译C

    CDT是Eclipse的一个插件,提供了C和C++的开发支持,包括语法高亮、代码自动完成、调试器等。 **CDT的安装:** 在Eclipse中,通过“Help” &gt; “Eclipse Marketplace”搜索“CDT”,找到C/C++ Development Tools并...

    Eclipse cdt+ MinGW 在Windows下编程

    在 Eclipse CDT 中,使用 MinGW 工具链创建一个新的 C++ 项目。项目类型可以选择 “Executable”,并命名该项目。 2. **编写源代码** 参照 Windows 编程的基本框架,编写源代码,定义窗口过程函数和主函数。在这...

    eclipse +cdt+MinGW.pdf

    ### Eclipse + CDT + ...通过上述步骤,您可以在 Windows 平台上使用 Eclipse IDE 来编写和编译 C++ 程序,而无需依赖 Microsoft 的 IDE。这不仅提供了一种灵活且开放的开发方式,还充分利用了 Eclipse 强大的功能集。

    Eclipse 上进行 cc++开发的安装配置

    为了能够在Eclipse上进行C/C++的开发,需要安装特定的插件——CDT(C/C++ Development Tools),同时还需要安装MinGW作为编译工具链。本文将详细介绍Eclipse环境下C/C++开发所需的安装配置步骤。 #### 二、所需工具...

    minGW: 配合CDT的C编译工具

    通过这种方式,Eclipse与MinGW的结合使得Windows上的C/C++开发变得更加方便,开发者可以享受到强大的IDE功能和跨平台的编译器优势。同时,由于MinGW是开源的,因此开发者可以根据自己的需求对其进行定制和扩展,...

    Eclipse CDT使用

    使用Eclipse CDT开发的C/C++应用,经过适当的编译器设置和依赖库管理,可以轻松地在UNIX或Linux环境中进行移植。这意味着,开发者可以在熟悉的Windows环境下编写代码,而无需担心跨平台问题,大大降低了开发难度和...

Global site tag (gtag.js) - Google Analytics