在使用java使用opc时,相信大家基本都是用的utgard这个包,如果你们使用的是matrikonopc那基本不会出现什么疑难杂症,但是如果使用的是其他商家的服务端就不一定了。
在使用这个包中需要确定以下几点:
1. dcom用户是否配置好
2. 和服务端的clsId一致
3. windows 权限是否开启(重点)
这里配置dcom我们就不说了,网上能找到很多大家可以自己去百度,今天重点说一下java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 16 这个错误。
当遇到这个错误时:
首先你应该检查你的clsId是否正确,如果没有错误。那么大概率就是因为刚才说的第3点出了问题。(电脑的可能表现是可一些软件需要用管理员权限打开而不是直接可以打开)
接下来让我们看看如何处理:
1)打开运行;然后输入gpedit.msc 2)打开组策略,选择计算机配置 3)选择windows设置; 4)打开安全设置; 5)接着打开本地策略; 6)选择安全选项; 7)找到 用户帐户控制:以管理员批准模式运行所有管理员(用于外置管理员) 用户帐户控制:用于内置管理员账号的管理员批准模式(用于内置管理员); 8)把这2个全部修改为禁用。
到此数组越界这个问题基本可以解决。