目的:
    用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. ruby中的instance_eval,class_eval,eval

    ruby具有在运行时执行以字符串形式保存的代码的功能设施,eval族方法 .包括Kernel#eval,Object#instance_eval,Module#class_eval. Kernel#e ...

  2. ruby中的私有方法和保护方法

    ruby中的私有方法是指方法只能被隐含调用,不能被显示调用.而当没有显示接收者的时候,会把self当成接收者.因此,只能在自身中调用私有方法,这也是私有方法的调用规则. ruby的私有方法机制目的是: ...

  3. POJ - 3648 Wedding (2-SAT 输出解决方案)

    题意:有N-1对夫妇和1对新郎新娘要出席婚礼,这N对人要坐在走廊两侧.要求每对夫妇要坐在不同侧.有M对人有通奸关系,对于这一对人,不能同时坐在新娘对面(新娘新郎也可能和别人有通奸关系).求如何避免冲突 ...

  4. 【U3D】脚本引用的类,如何显示在编辑器界面

    有时候,我们的类里面会组合其他功能模块 如何让这些功能类的值在编辑器界面出现呢? 1:引用类的访问类型必须是Public 2: 类必须声明为可序列化的,即在类头加入以下声明 [System.Seria ...

  5. JMS--消息头

    一个消息对象分为三部分:消息头(Headers),属性(Properties)和消息体(Payload).对于StreamMessage和MapMessage,消息本身就有特定的结构,而对于TextM ...

  6. C++编程中设置文件长度的方法

    转自:http://blog.csdn.net/rrrfff/article/details/6705685 bool SetFileLength(const char *FilePath, off_ ...

  7. JCenter下载太慢?教你修改Maven仓库地址为国内镜像

    http://blog.csdn.net/biezhihua/article/details/49668605 转载自:http://www.yrom.net/blog/2015/02/07/chan ...

  8. [NOI2014]动物园(kmp)

    题目 https://www.luogu.org/problemnew/show/P2375 做法 查找多少个前缀与后缀配对,其实就是\(fail\)树的深度 而不可重叠,其实\(i\)不可用的,\( ...

  9. LSTM java 实现

    由于实验室事情缘故,需要将Python写的神经网络转成Java版本的,但是python中的numpy等啥包也不知道在Java里面对应的是什么工具,所以索性直接寻找一个现成可用的Java神经网络框架,于 ...

  10. obtainBuffer timed out (is the CPU pegged?)

    https://stackoverflow.com/questions/5293025/audiotrack-lag-obtainbuffer-timed-out [典] 03-13 14:55:57 ...