开源GIS实验田

OpenSource GIS Space

  • 内容导航

  • 最新评论

    • Gao Ang: 这将是一次开源GIS百科全书式的大会 ...
    • SHG: 恭喜恭喜 希望到时有更多国外的专...
    • Gao Ang: 这个示例可以搜索指定位置500m范围内...
    • suan: 你好,我想請問你GOOGLE MAPS API的問題 ...
    • Gao Ang: 静态地图现在支持用户自定义图标,...
  • 热门主题

  • 随机阅读

    • 2007 年三月
      « 二   四 »
       1234
      567891011
      12131415161718
      19202122232425
      262728293031  
    • Gao Ang

      GaoMiao's Portrait
      有了理想
      就不要寻找放弃的理由

      站点搜索

    • 只言片语

      告诫已经长大成年的孩子们别犯错误这是徒劳的。 ——罗素

    Archive for 三月, 2007

    Java本地调用C/C++的动态库

    21st 三月 2007

    前段日子投身考博的复习,文章更新不太及时。总算告一段落,于是开始着手实现基于Java的OGC WPS规范,为了方便使用SVN存储库进行代码管理以及尝试一下Tomcat 6的新功能,IDE采用了Netbeans 6.0 M7版本。

    关于WPS的Java实现,计划中的三部分工作是:1.改进已有WPS的实现,简化算法的XML配置,集成Geotools的空间分析函数,从中选择增加新的WPS操作到Algorithm库中。2.参考pyWPS的命令行调用方式,在Linux下通过Java IO包里的Runtime.getRuntime().exec()方法给GRASS命令行传入执行参数,通过命令调用的方式将GRASS的功能进行服务化提升。3.通过本地接口JNI来调用已独立封装好的GRASS API,直接将参数传入so动态库,通过GRASS的动态库来获得地理数据分析功能。目前第一和第二步的技术路子已经走通,第三步实现则较为复杂,预计可能需要做不少工作。

    本地接口(Java Native Interface)是JDK的一部分,允许Java 代码使用以其它语言编写的代码和代码库。关于JNI的详细使用方法,可以找到不错的教程,在IBM DeveloperWorks上,也有关于Linux下使用本地接口的文章。JNI将Java 虚拟机嵌入本机应用程序,可以实现从Java 程序调用C/C++以及从C/C++程序调用Java代码。本机方法调用C的动态库,需要使用Javah命令重新生成引用C/C++源文件的头文件,定义JNI 的库文件和本机头文件,首先在Java类中声明要调用的本机语言方法,并载入包含本机代码的共享库,然后调用类库中的本机方法。

    目前Java开发使用的IDE逐渐从EclipseNetbeans过渡,相比较来说,Netbeans近来的发展势头让人看到Java IDE新的希望,无论在功能上还是在代码感知的响应速度上都不亚于Eclipse,作为用于代码编写的环境,在不安装任何各式庞杂插件的基础上,可以带给程序员不错的体验。

    Posted in 编程语言, 聚焦GIS | 9 Comments »