目的:
用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,另外外部函数需要放到ITTIDL64lib文件夹下。
2、如何使用导出工具导出IDL对象
IDL可以通过对象导出助手导出成JAVA对象,以下是一个小例子和一些注意事项。
首先,IDL的LICENSE中需要注册对象导出助手,详细说明请参看IDL帮助中的Supported Platforms and IDL Modes。
其次,导出JAVA对象请确保机器已经安装了JAVA JDK 1.5或更高版。
再次,导出JAVA对象请将系统环境变量中的变量Path的最前面加上“JAVA_PATH jdk1.6in;”,其中JAVA_PATH是JAVA的安装目录,请查看该路径下是否有javac.exe,没有请重装JAVA。设置好了环境变量请重起IDL。
打开IDL,在IDL命令行中输入IDLEXBR_ASSISTANT启动对象导出助手,点击菜单栏File->New Project来选择导出JAVA对象,在弹出的对话框中选择写好的IDL类文件(*__define.pro),选择例子文件“ITTIDL64examplesdocridges helloworldex__define.pro”,然后点击菜单栏Build->Build Object来导出文件。
3、如何使用导出IDL对象
使用IDL导出的对象本质上是建立IDL与其他语言的接口,所以需要将你编写的IDL程序放到ExelisIDL82lib目录下供IDL运行环境调用。另外,如果IDL类的函数名和参数未改变,需要改变IDL程序的内容,则只需要修改lib文件中的IDL文件即可,不需要重新导出。如果需要增加或修改IDL类的函数或参数则对象也需要重新导出。