我为一个模块添加了如下资源:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<moduleType>eager</moduleType>
<nbmResources>
<nbmResource>
<directory>${basedir}/resources</directory>
<targetPath>resources</targetPath>
<includes>
<include>*.db</include>
</includes>
<excludes>
<exclude>*trace*</exclude>
</excludes>
</nbmResource>
</nbmResources>
</configuration>
</plugin>
该文件显示在Netbeans应用程序中:target/app name/app name/resources/card_manager.mv.db
。看起来不错。
现在我试图得到文件的位置,如下所示:
File db = InstalledFileLocator.getDefault().locate("card_manager.mv.db",
"module.codename.base", false);
但是db总是null。任何想法?
试试下面的代码…
File file = InstalledFileLocator.getDefault().locate("myfile", null, false);
if (file == null)
{
file = new File(Places.getUserDirectory() + File. separator + "myfile");
}
或者您是否尝试过resources/card_manager.mv.db?我确信应用程序路径(应用程序名称)和集群名称(第二个应用程序名称)被排除在locate()之外,但我相信你必须包括资源/路径。
修改您的pom,以便将card_manager.mv.db
复制到classes文件夹而不是resources文件夹,并从classloader获取文件