快速业务通道

在异构UNIX系统间可靠的迁移Java应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
  <property name="path.src" value="src" /> 8  <target name="echo"> 9   <echo>build properties</echo> 10  </target> 11 </project>

这个构建组件中使用了一种常用的技术,即将变量(属性定义)与内置的变量(构建步骤 )分离。

在异构UNIX系统间可靠的迁移Java应用(4)

时间:2011-04-16 IBM Shen Yu

构建 JNI 组件

可以使用 Ant 和 JDK 的组合对 Java 代码进行编译和部署,同样地,可以使用 Ant、 Make、GCC 和 JDK 的组合对 JNI 组件进行编译和部署。这个过程比较复杂,因为它需要下 列内容:

三种编译器:javah、javac 和 GCC

两种构建工具:Ant 和 Make

下面的清单 8、9、10、11 和 12 显示了包括 Java 代码、本地代码、一个 Ant 脚本和 一个 Makefile 的 JNI 构建组件。这个 JNI 组件还实现了输出 Hello 的任务。

清单 8. 在本地方法中输出 Hello

1  package hello; 2  public class Test { 3   public static native void hello(); 4   static { 5    System.loadLibrary("libhello"); 6   } 7   /** 8    * @param args 9    */ 10   public static void main(String[] args) { 11     hello(); 12   } 13  }

清单 9. 从 Hello.clas 编译得到的 Header 文件

1  /* DO NOT EDIT THIS FILE - it is machine generated */ 2  #include <jni.h> 3  /* Header for class Test */ 4  #ifndef _Included_Test 5  #define _Included_Test 6  #ifdef __cplusplus 7  extern "C" { 8  #endif 9  /* 10   * Class:   Hello 11   * Method:  hello 12   * Signature: ()V 13   */ 14  JNIEXPORT void JNICALL Java_Test_hello 15   (JNIEnv *, jclass); 16  #ifdef __cplusplus 17  } 18  #endif 19  #endif

在异构UNIX系统间可靠的迁移Java应用(5)

时间:2011-04-16 IBM Shen Yu

清单 10. 本地代码

1  #include "hello_Hello.h" 2  #include <stdio.h> 3  JNIEXPORT void JNICALL Java_Test_hello 4   (JNIEnv * env, jclass jobj) { 5    printf("Greeting from build system – jni component! \n"); 6  }

清单 11. 构建 JNI 组件的 Ant 脚本

1  <?xml version="1.0"?> 2  <project default="compile" basedir="."> 3   <echo message="pulling in property files" /> 4   <import file="properties.xml" /> 5   <echo message="compile jni greeting" /> 6   <target name="compile" depends="compile- native"> 7    <mkdir dir="${path.dist.classes}" /> 8    <javac destdir="${path.dist.classes}" srcdir="${path.src}" /> 9   </target> 10   <target name="compile-java"> 11    <mkdir dir="${path.dist.classes}" /> 12    <javac destdir="${path.dist.classes}" srcdir="${path.src}" /> 13   </target> 14   <!-- native tasks start here --> 15   <target name="compile-header" depends="compile- java"> 16    <javah destdir="${path.dist.classes}" classpath="${path.dist.c

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号