iObjectsjava环境部署篇
作者:zhangL
背景
许多⽤户反馈在初学使⽤iObjects java(组件)时会遇到各种⼊门级问题,⽐如:环境部署、许可、依赖检测等种种问题,其中有许多坑都是容易踩中的。这⾥我为⼤家整理⼀个⽐较全⾯的部署指南,⽅便⼤家⼊门使⽤。
⼀、环境变量部署
iObjects java 是依赖java的环境变量的,推荐使⽤jdk1.8,并且需要分别保持iObjects java、java jdk的编译环境和运⾏环境版本⼀致。java环境变量部署不再赘述,下⾯讲⼀下iObjects java的环境变量配置,这⾥推荐⼿动配置。
1、Windows
2、Linux
根据CPU架构在 下载对应的组件包,然后上传到Linux环境中⽤命令解压
tar -zxvf 组件tart包
(1)以 root ⽤户 登录,vim /etc/profile 编辑环境变量,添加
export PATH=$PATH:组件bin⽬录路径
export LD_LIBRARY_PATH=组件bin⽬录路径 : $LD_LIBRARY_PATH
export SUPERMAP_ROOT= 组件bin⽬录路径
添加完后执⾏
java环境变量自动配置source /etc/profile
使环境变量⽣效 ;
PS:通常配置PATH和LD_LIBRARY_PATH就能保证功能正常运⾏,SUPERMAP_ROOT是为了让组件⾃带的字体库等资源⽣效,如果没有配置,可能会遇到在map.outPutToPng()输出带汉字或者数字的标签的图⽚时,标签内容为空;
(2)编辑在 /etc/profile的环境变量,在机器重启或重新另起⼀个终端时可能不会⽣效,就需要重新sour
ce /etc/profile,但是把环境变量配置在 ~/.bashrc 下可以保证重启机器或者另开终端也能正常使⽤;
vim ~/.bashrc
source ~/.bashrc
(3)当组件版本需要更换时,因为(1)中写法是对已有的PATH进⾏追加的环境变量,⽼版本的并未删掉,⼜同时只能存在⼀个组件环境变量。所以在vim /etc/profile 编辑好新的环境变量之后,需要将环境变量重置⼀下
#分别执⾏,顺序不分先后
unset PATH
unset LD_LIBRARY_PATH
重置过后,关掉当前终端,重新起⼀个,然后 再source /etc/profile
⼆、许可、依赖检查
1、许可
许可申请和配置可以参考 开发指南——许可配置说明
2、许可和依赖检查
(1)Windows:检查许可和环境只需要建个⼯程,在代码中执⾏ new Workspace(); 就能判断许可和环境是否通过。许可异常:可以在错误⽇志中到License报错的关键词,环境变量异常:会有loadlibrary关键词报错,具体情况具体分析。
(2)Linux:可以把(1)的⼯程打包成runnable jar,然后上传到Linux上运⾏检测。
java -jar 你的测试jar
Linux中许可报错与Windows⼀致,但是环境的报错的原因有多个:
a:环境变量未⽣效或者配置错误;
b:依赖冲突或者不全;
c:特殊依赖缺失;
排查⽅案
a:⽤命令输出环境变量值,检查是否和预期⼀致,存在问题按照上述部署步骤再来⼀遍。
echo $PATH
echo $LD_LIBRARY_PATH
b:切到组件的bin路径下,执⾏命令检查核⼼依赖并⼿动补全。
ldd libWrapjCore.so |grep not
c:b的命令只能检测核⼼依赖是否缺少,可能会出现基础功能可以运⾏,但是特殊功能运⾏失败的情况;⽐如:将地图输出成png图⽚这个功能,这个需要libpng12相关的依赖。⽤如下命令检测特殊依赖缺失情况(不影响基础功能使⽤)
ldd libWrapj*.so |grep not
PS:额外需要注意的是。数据库对接的相关依赖要⽤单独的so库进⾏检测,⽐如:
#检查postgis所需依赖是否缺少
ldd libSuEnginePGis.so |grep not
依赖补充
X86_64架构的环境可以从⼀个正常运⾏的环境中拷贝到组件bin⽬录下,前提是CPU架构⼀致。也可以百度下载;
arm架构的组件包将所需的⼤部分依赖打在了产品包内,⾃⾏解压使⽤。如果仍然不全,还可以在jre的lib下。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论