2015-06-05 28 views
5

dodałem zasób dla modułu następująco:Netbeans Platform: InstalledFileLocator

<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> 

Z akt sprawy wynika w aplikacji w Netbeans: target/app name/app name/resources/card_manager.mv.db. To wygląda dobrze.

Teraz próbuję uzyskać tej lokalizacji pliku w następujący sposób:

File db = InstalledFileLocator.getDefault().locate("card_manager.mv.db", 
        "module.codename.base", false); 

Ale db zawsze ma wartość null. Dowolny pomysł?

Odpowiedz

0

Spróbuj tego kodu ...

File file = InstalledFileLocator.getDefault().locate("myfile", null, false); 
if (file == null) 
{ 
    file = new File(Places.getUserDirectory() + File. separator + "myfile"); 
} 

A próbowałeś resources/card_manager.mv.db? Jestem pewien, że ścieżka aplikacji (nazwa aplikacji) i nazwa klastra (druga nazwa aplikacji) są wykluczone z funkcji locate(), ale uważam, że musisz uwzględnić zasoby/ścieżkę.

+0

Spróbuje i zgłoś ponownie. – javydreamercsw

+0

Nie działa, ale wiem, że mogę zmienić ustawienia lokalizacji zasobu itp., Ale nie jest to, czego chcę. Potrzebuję użyć InstalledFileLocator, ponieważ różne moduły mogą mieć własną wersję tego pliku i muszę je zlokalizować za pomocą codenamebase. – javydreamercsw

+0

Nawet jeśli wygasa ta nagroda, dałbym dobrą punktację za nagrody. – javydreamercsw

0

Zmodyfikuj pom, aby został skopiowany do folderu klas, a nie do folderu zasobów i pobrać plik z programu ładującego klasy.

+0

Wiem, że mogę sprawić, żeby działał zmieniając położenie zasobu itp., Ale nie jest to, czego chcę. Potrzebuję użyć InstalledFileLocator, ponieważ różne moduły mogą mieć własną wersję tego pliku i muszę je zlokalizować za pomocą codenamebase. – javydreamercsw

+0

Nawet jeśli wygasa ta nagroda, dałbym dobrą punktację za nagrody. – javydreamercsw