IobjectJava+Oracle客户端安装


1.概述

  后台系统使用超图iobjectJava操作地图,数据库使用的是Oracle,在安装使用期间遇到了不少的坑,在此记录,以免后忘。

2.安装Oracle客户端

  先安装oracle客户端,再安装iobjectJava。原因是iobjectjava需依赖oracle客户端的一些组件。

2.1.下载Oracle客户端

  我们系统安装的版本是10.2的ZIP压缩包,使用ZIP包的好处是免安装。下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

2.2.解压到/opt/oracle

  解压后生成目录/opt/oracle/instantclient_10_2

unzip instantclient_10_2.zip

2.3.在上述目录新建目录在上述目录下新建 network/admin

  生成目录/usr/local/oracle/instantclient_10_2/network/admin

mkdir -p ./network/admin

2.4.在上述目录新建tnsnames.ora文件,并编辑数据库链接信息

history_162 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.2.222)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID =xxx)
    )
  )

2.5.配置环境变量

  最好在/etc/profile中配置环境变量,此时的环境变量是全局生效的。其他有些文章是在.bash_profile中配置的,只会在当前session中生效,如重新打开session窗口,则配置变量丢失。

vi /etc/profile

配置内容如下:

export ORACLE_HOME=/opt/oracle/instantclient_10_2
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH

配置后记得执行source命令,使配置生效:

source /etc/profile

2.6.验证客户端是否安装成功

sqlplus username/passwd@history_162   #history_162为2.4步句柄

成功则进入oracle控制台。
在这里插入图片描述

3.iobjectJava安装

3.1.文件下载

  下载地址如下。我们安装的是iobjectjava9.0.0(Bin包)版本(该版本比较旧了,官方建议是安装10.2及以上的版本),Bin包版比较小,但是不方便以后更新许可证,且Bin版无默认试用期,建议安装完整版(我们安装Bin版是因为我们环境装有iserver完整版,iobjectjava可以使用iserver的许可证)。

http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx

3.2.解压安装到/home/iobjectjava路径下

  解压后得到一个Bin文件夹。

tar -zxvf supermap-iobjectsjava-9.0.0-15320-63946-linux64-tar.gz-chs-Bin.tar.gz

3.3.拷贝oracle客户端文件至iobjectjava

  进入到/opt/oracle/instantclient_10_2目录下,将下述文件下载到本地环境,需要下载的文件如下。将下载下来的文件上传到/home/iobjectjava/Bin文件夹中。
在这里插入图片描述

3.4.删除sdx文件

  删除以下sdx文件,这些文件是其他数据库的依赖,我们系统使用oracle,对于其他库的依赖要予以删除,否则iobjectjava会启动报错。

rm -rf libSuEngineSRDB.sdx
rm -rf libSuEngineDMCI.sdx
rm -rf libSuEnginePG.sdx
rm -rf libSuEngineOsp.sdx
rm -rf libSuEngineAltibase.sdx
rm -rf libSuEngineDB2.sdx
rm -rf libSuEngineKDB.sdx
rm -rf libSuEngineKadb.sdx

3.5.配置环境变量

  在/etc/profile中配置环境变量,配置内容如下,配置完成后记得执行source命令使配置文件生效。

export PATH=/home/iobjectjava/Bin:$PATH
export LD_LIBRARY_PATH=/home/iobjectjava/Bin:$LD_LIBRARY_PATH

3.6.验证是否安装成功

  写如下一段java代码,放入linux环境中看是否能执行成功即可

    public static void main(String[] args) {
        System.out.println("===========begin===========");
        Workspace ws = new Workspace();
        System.out.println("===========end=============");
        ws.close();
    }

4.配置许可证

  iobjectjava刚安装好时,是有三个月许可证使用期限的。如果许可证过期,则需去官网申请新的许可证。

4.1.查看许可证何时过期

  对安装了iobjectjava完整版或iserver完整版的,进入安装根目录,运行以下命令:

./licensetool.sh -status

查询结果:
在这里插入图片描述

4.2.linux环境更新许可证

  首次更新需创建一个许可证目录。

4.2.1生成report文件

  在iobjectjava完整版或iserver完整版的根目录,运行以下命令:

./licensetool.sh -report  report文件存在目录  

在这里插入图片描述

4.2.2.根据生成的report文件去官网申请许可证

  申请步骤根据官网提示来就行了
https://www.supermapol.com/subscription/time-license/object

  申请后得到的许可证:
在这里插入图片描述

4.2.2首次替换,创建许可证目录

  创建目录:/opt/SuperMap/License,注意大小写。将许可证文件放入到目录下即可。

5.记一些问题

5.1.报错:libawt_xawt.so:cannot open shared object file

  见另一篇文章:https://blog.csdn.net/dip12315/article/details/125365717

5.2.执行3.6验证代码时,workspace工作空间无法打开,也不报错。

  具体原因不明,但是已清楚是什么操作导致的:

  1. 我使用的是root账号安装的,root账号安装后,执行3.6节代码,显示已安装成功。
  2. 之后我又使用了weblogic账号来执行3.6的代码(测试环境应用是用weblogic账号发版的),然后就出现了以上问题。
  3. 用weblogic账号运行出现该问题后,我又切回到root账号运行3.6代码,依然出现了上述问题。
  4. 觉得可能是用weblogic账号运行后,新生成了什么带权限的文件,然后把iobjectjava下的文件权限全部调整为了可读可写可执行,依然没有解决问题。

  解决:重装 😦,重装后注意只能使用一个账号来启动,不能多个账号切换来启动。

5.3.报错:unknown error code: 31

  完整报错如下
在这里插入图片描述
原因:许可证过期了,快去更新吧。如果是生产应用,更新许可证无需重启应用。

5.4 no subase in java.library.path

原因:未配置iobjectjava的环境变量或环境变量未生效
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值