某次在安装并使用StarUML的时候,遇到了一个问题:在菜单Tools下面死活都找不到Java的逆向工程的菜单。
仔细的查看了一下,发现最下面的小窗口Output栏中有这样的异常信息:Failed to load the Add-in "JavaAddIn"。
一开始,先上网搜索了一下,没有search到解决方法。
然后就到StarUML的安装目录下看了一下这些Add-In到底是以什么样的形式存在的,为什么会安装失败呢?
原来在StarUML的安装目录下,有一个个的插件的文件夹,如staruml-java,staruml-xmi,staruml-standard,staruml-rose,staruml-cpp,staruml-csharp,staruml-generator,staruml-pattern。说明在安装的时候这些插件目录已经被正确的复制到安装目录下了,这样的话,就不会是安装过程中出了什么错。
那么到底是什么原因呢?
再仔细一看,每个插件目录下都有一个脚本文件unreg.bat,里面的内容类似于“regsvr32 /u JavaAddIn.dll”这样。再一想,StarUML怎么也不会无缘无故提供这么一个反注册的脚本的,肯定就是为了应对安装不成功的问题的。
于是就把所有插件目录下的unreg.bat都执行了一下,然后重新启动StarUML。
然后就可以确认成功了,所有的插件都已经成功的加载了。
经过这么一次,原因推测如下:
我这台电脑之前的同事已经安装过StarUML并且在卸载的时候使用了非常规卸载方式或者StarUML本身的卸载功能就没有做好,导致注册表中了记录了之前安装的目录。然后在我重新安装了StarUML之后,这些注册表信息又没有被正确的更新,导致启动后加载插件失败。只有把注册表中的错误的信息删掉,再重新加载才可以正常使用。