Netbeans平台中, .shadow文件主要用于系统文件系统的配置数据上. .shadow文件在功能上和Unix的软连接很像. 实际上就是一个文件的指针. .shadow文件通常在只需要一个对象实例,但是必须在多个目录下存在的情况下使用. 例如, 一个动作通常在系统文件系统中Action目录下声明,但是这个动作也必须在菜单和工具栏中出现. 我们不能创建这个动作的多个实例来解决上面的问题. 一个.instance文件在模块的层文件layer.xml中的Actions目录中创建. 然后在其他需要这个对象的地方创建对应的.shadow文件指向这个.instance文件. 在系统文件系统中声明一个.shadow文件:
- <folder name="A">
- <file name="com-foo-mymodule-MyClass.instance"/>
- <!---->folder>
- <folder name="B">
- <file name="Shadow1.shadow">
- <attr name="originalFile" stringvalue="A/com-foo-mymodule-MyClass.instance"/>
- <!---->file>
- <!---->folder>
- <folder name="C">
- <file name="anotherShadow.shadow">
- <attr name="originalFile" stringvalue="A/com-foo-mymodule-MyClass.instance"/>
- <!---->file>
- <!---->folder>
.shadow文件可以指向系统文件的任何文件, 也可以指向磁盘上的真实文件. 例如在Netbeans IDE中Favorite Tab面板上,使用.shadow文件指向磁盘上的真实目录.