cass如何加载dll插件

cass如何加载dll插件,第1张

这里提供三种方法供你选择。

第一种,也是最常用的方法。点击工具——加载应用程序,或者直接输入命令appload,把插件加载到启动组。不过这种方法经常失效,如果没用可以试试下面两种方法。

方法一:添加程序到启动组

第二种,也是经过测试最有效通用性最高的方法。找到CAD安装目录下Support目录,下面有一个lsp后缀的文件,名字通常为"acad+cad版本号",例如我用的CAD2016,那么路径就是C:Program FilesAutodeskAutoCAD 2016Support,文件名为acad2016.lsp。用记事本打开该文件,找到(if (not (= (substr (ver) 1 11) "Visual LISP")) (load "acad2016doc.lsp"))这一行(不同版本会略有不同),在此行下添加一行代码:

(load "D:/专业软件/CAD插件/存为现在.lsp")

上面括引号内只要换成你需要的加载的插件路径和名字即可,添加完保存文件就可以使用了。

方法2 修改启动文件

第三种方式是通过 *** 作注册表来实现。目前经测试,该方法对dll和arx插件比较有效。

在开始菜单中,打开运行,输入"regedit",打开注册表,找到CAD安装项,例如CAD2016,就在HKEY_LOCAL_MACHINESOFTWAREAutodeskAutoCADR20.1ACAD-F001:804Applications下新建项,名字可以自己取,在该项下再创建下图所示的几项值,其中LOADER下就是需要加载的插件的路径,创建时要注意类型一定要选择正确。

方法3 注册表加载

有人会觉得这么 *** 作注册表太麻烦有没有简单的方法呢?有的,可以新建一个txt文件,拷入以下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREAutodeskAutoCADR20.1ACAD-F001:804ApplicationsHLPlot]

"DESCRIPTION"="HLPlot安装程序"

"LOADCTRLS"=dword:00000002

"LOADER"="D:HLPlot V1.0HLPlotbinDebugHLPlot.dll"

"MANAGED"=dword:00000001

[ ]内的注册表路径自己替换,"DESCRIPTION"后为对插件的描述,可自行修改,"LOADER"后为插件的全文件名路径。其他值采用默认值即可。修改完保存,把文件后缀改为reg,然后双击添加,就自动添加进注册表了。

第一步 建立一个监听类

建立监听类的作用是在应用中间件启动时自动执行加载程序。

1)创建一个类实现ServletContextListener 接口

2)实现contextInitialized方法

3)在项目的web.xml 文件中配置此监听类

第二步 将dll文件所在的路径添加到系统环境java.library.path 中

添加过程需要使用到反射机制来进行,不能使用System.setProperty()进行设置,设置了也无效。直接看代码:

private void addDirToPath(String s){try {//获取系统path变量对象Field field=ClassLoader.class.getDeclaredField("sys_paths")//设置此变量对象可访问 field.setAccessible(true)//获取此变量对象的值 String[] path=(String[])field.get(null)//创建字符串数组,在原来的数组长度上增加一个,用于存放增加的目录String[] tem=new String[path.length+1]//将原来的path变量复制到tem中 System.arraycopy(path,0,tem,0,path.length)//将增加的目录存入新的变量数组中 tem[path.length]=s//将增加目录后的数组赋给path变量对象field.set(null,tem)} catch (Exception e) {e.printStackTrace()}}

第三步 加载dll文件

接下来就可以写上下文初始化的方法了:

public void contextInitialized(ServletContextEvent arg0) {//获取存放dll文件的绝对路径(假设将dll文件放在系统根目录下的WEB-INF文件夹中)String path=arg0.getServletContext().getRealPath("WEB-INF")//将此目录添加到系统环境变量中 addDirToPath(path)//加载相应的dll文件,注意要将'\'替换为'/' System.load(path.replaceAll("\\\\","/")+"/XXXX.dll")}

第四步 重启启动应用中间件(Tomcat|Weblogic)

至此就可以在你的java程序中使用dll文件的方法了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12009210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存