目的:
    用IDL将ENVI的功能封装成为IDL的类,并使用IDL的对象导出功能把这些功能类导出为java类,方便java调用。(本来想直接通过GP工具调用的,但是没有授权文件)
 
操作步骤:
 
1、如何用IDL封装ENVI,使其能够被IDL对象导出工具导出
    在类的init中初始化ENVI,并使用批处理模式,代码如下:
    CALL_PROCEDURE,'ENVI',/restore_base_save_files
    CALL_PROCEDURE,'ENVI_BATCH_INIT',/NO_STATUS_WINDOW
    注意:在写IDL程序时,如果使用ENVI函数或其他外部函数时,请使用CALL_PROCEDURE或CALL_FUNCTION,另外外部函数需要放到ITT\IDL64\lib文件夹下。
   
2、如何使用导出工具导出IDL对象
 
    IDL可以通过对象导出助手导出成JAVA对象,以下是一个小例子和一些注意事项。
    首先,IDL的LICENSE中需要注册对象导出助手,详细说明请参看IDL帮助中的Supported Platforms and IDL Modes。
    其次,导出JAVA对象请确保机器已经安装了JAVA JDK 1.5或更高版。
    再次,导出JAVA对象请将系统环境变量中的变量Path的最前面加上“JAVA_PATH\ jdk1.6\bin\;”,其中JAVA_PATH是JAVA的安装目录,请查看该路径下是否有javac.exe,没有请重装JAVA。设置好了环境变量请重起IDL。
    打开IDL,在IDL命令行中输入IDLEXBR_ASSISTANT启动对象导出助手,点击菜单栏File->New Project来选择导出JAVA对象,在弹出的对话框中选择写好的IDL类文件(*__define.pro),选择例子文件“ITT\IDL64\examples\doc\bridges\ helloworldex__define.pro”,然后点击菜单栏Build->Build Object来导出文件。
 
3、如何使用导出IDL对象
    使用IDL导出的对象本质上是建立IDL与其他语言的接口,所以需要将你编写的IDL程序放到Exelis\IDL82\lib目录下供IDL运行环境调用。另外,如果IDL类的函数名和参数未改变,需要改变IDL程序的内容,则只需要修改lib文件中的IDL文件即可,不需要重新导出。如果需要增加或修改IDL类的函数或参数则对象也需要重新导出。

将封装了envi功能的IDL类导出成java类,方便java调用的更多相关文章

  1. 第8章 Java类的三大特性之一:封装

    1.什么是封装 1.1概念 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问.主要是类的属性 1.2好处 a.只能通过规定的方法访问数据b.隐藏类 ...

  2. PHP封装一个通用好用的文件上传处理类

    封装一个文件上传类完成基本功能如下: 1.可上传多个或单个文件 2.上传成功返回一个或多个文件名 3.上传失败则返回每个失败文件的错误信息 上传类中的基本功能: 1.构造参数,用户可以自定义配置参数, ...

  3. Java—类的封装、继承与多态

    一.类和对象 1.类 类是数据以及对数据的一组操作的封装体. 类声明的格式: 类声明 { 成员变量的声明: 成员方法的声明及实现: } 1.1 声明类 [修饰符] class 类<泛型> ...

  4. java类的封装、继承、多态

    一.封装(encapsulation) 封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系.封装的特 ...

  5. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  6. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,nloglogutil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  7. php面向对象 封装继承多态 接口、重载、抽象类、最终类总结

    1.面向对象 封装继承多态  接口.重载.抽象类.最终类 面向对象 封装继承多态  首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一 ...

  8. Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!

    Go/Python/Erlang编程语言对比分析及示例   本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...

  9. 089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 使用包进行类管理(1)——创建包

    089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

随机推荐

  1. maven工具使用之常用maven命令(二)

    1.创建java web项目: # mvn archetype:generate -DgroupId=com.igoodful.sdxs      -DartifactId=hubu  -Darche ...

  2. 《mysql必知必会》读书笔记--游标的使用

    游标的使用 MySQL中游标只能用于存储过程 创建游标 CREATE PROCEDURE processorders() BEGIN DECLARE ordernumbers CURSOR FOR S ...

  3. ionic调用摄像头

    须知ionic是借助于cordova来实现与底层硬件的交互的 我假设你已经全局安装了cnpm.ionic.cordova,并且配置好了安卓环境 我以下demo是建立在官方提供的模板上进行的ionic ...

  4. 【转】阿里巴巴技术专家杨晓明:基于Hadoop技术进行地理空间分析

    转自:http://www.csdn.net/article/2015-01-23/2823687-geographic-space-base-Hadoop [编者按]交通领域正产生着海量的车辆位置点 ...

  5. python3_time模块详解

    python提供的时间模块time是需要单独引入: 1.time.sleep(secs)# 推迟调用线程的运行,secs指的是秒 time.sleep(secs) 2.time.time():返回当前 ...

  6. vultr VPS安装BBR

    1.安装 wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh chmod +x bbr.s ...

  7. js正则匹配两位小数

    今天写一个用js正则校验最多保留两位小数的格式. a = /^\d+|\d+\.\d{1,2}$/; 测试 a.test(1.222); 结果:true 一下蒙了,怎么可能,最后找了好久,原来需要把^ ...

  8. encoder-decoder环境部署问题

    pip -v    2.7 cp -r pip2.7 pip pip list appdirs (1.4.3)cycler (0.10.0)distribute (0.7.3)extern (0.1. ...

  9. 20144303 《Java程序设计》课程总结

    20144303 <Java程序设计>课程总结 每周读书笔记链接汇总 第一周:http://www.cnblogs.com/20144303sys/p/5248979.html 第二周:h ...

  10. Http中Get和Post的区别(转载)

    在B/S应用程序中,前台与后台的数据交互,都是通过HTML中Form表单完成的.Form提供了两种数据传输的方式——get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可 ...