WEB开发网
开发学院软件开发Java 调试集成 Java 和 C/C++ 的代码 阅读

调试集成 Java 和 C/C++ 的代码

 2010-01-25 00:00:00 来源:WEB开发网   
核心提示: jnitest.dllJNITest.hJNITest.javajnitest.olibtstdll.a其中,Java 代码是 JNITest.java ,调试集成 Java 和 C/C++ 的代码(3),它包含装入本机库的 main() 方法,以及 instance() 和 static()

jnitest.dll

JNITest.h

JNITest.java

jnitest.o

libtstdll.a

其中,Java 代码是 JNITest.java 。它包含装入本机库的 main() 方法,以及 instance() 和 static() 两个方法。它还声明了 native() 方法 ― public native int native_doubleInt(int value) 。

C 代码是 jnitest.c 。它含有 native_doubleInt() 方法的 C 实现。当被调用时,这个方法就调用一个简单的 C 方法,并且回调到 Java 类中。

工具

这里有一些 C/C++ 和基于 Java 的调试器示例 ― 包括开放源码和商业性的产品 ― 可以使用它们来调试 Java/C 应用程序。请注意 Java 和 C/C++ 代码都必须带调试信息进行编译。为此,在编译 Java 代码时,将 -g 标志添加到 javac 中;编译 C 代码时,使用编译器指定的选项 。

基于 Java 的调试器:

JDB 是包含在 JDK 中的标准调试器,也是本文中使用的调试器。

IBM VisualAge for Java 带有一个分发的调试器。这个强大的图形界面调试器可以与主工具分开使用。

JSwat 是一个优秀的开放源码图形 Java 调试器。

C/C++ 调试器:

GDB 是 GNU 调试器,也是本文中使用的调试器。

GCC 和相关的工具对于 Windows 上有几个移植。一个移植是 Cygwin,它提供了一个抽象层,在此抽象层顶部可以使用许多 UNIX 风格的工具。另一个是 MinGW(Minimalist GNU for Windows),它是一个不带抽象层的较小的工具箱。

大多数商业工具,比如 VisualAge、Microsoft Visual C++、Borland、Code Warrior 以及其它工具都向调试器提供了图形前端,使它们易于使用。

调用 JNI 方法

这个调用方法允许您只在需要 JVM 的时候才启动它。例如,想象在一个 Java 类库外面已经封装了一个本机 C 接口,然后想要编写一个使用这个接口的 C 应用程序。在这种情况下,主 C 应用程序将要在需要 JVM 的时候启动它。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:调试 集成 Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接