2016-04-26 2 views
1

meine Klassendatei i einen Ressourcenordner enthalten ist, und die Datei lesen undRunnable JAR-Datei creation - Ressourcenordner, die in dem JAR-Paket

enter image description here

Frage gehen, während eine jar-Datei erstellen i enthalten sein soll die Ressource Ordner (zusammen mit der Datei) in dem jAR-Paket

enter image description here

Zweck becasue mehr als ein Benutzer die JAR-Datei ausgeführt wird, können sie den Inhalt der Datei ändern und ausgeführt

lassen Sie mich wissen, wie die Ressource-Ordner in der Jar-Paket enthalten

+0

@Rahman: ja hinzugefügt im Klassenpfad, aber nicht die Ressourcenordner bekommen, nur die Lib-Dateien bekommen – Prabu

+0

Benutzer den Inhalt nicht ändern können einer Ressource. Unklar, was du verlangst. – EJP

+0

@EJP: Ich muss diese JAR-Datei an andere Personen weitergeben, sie ersetzen die Excel-Datei und führten das Jar – Prabu

Antwort

1

Sie müssen die Ressourcen-Ordner unter dem src Ordner platzieren, so wird es sein in Ihrem Runnable Jar enthalten.

Der korrekte Verweis auf eine Ressourcendatei ist entweder oder getResourceAsStream.

Zum Beispiel:

this.getClass().getClassLoader().getResourceAsStream("resources/filename.extension"); 

Wo "Ressourcen" ist der Name des Ordners, den Sie unter src platziert.

+0

Danke, fügte die Ressourcen unter dem Quellcode hinzu, aber der gleiche ausführende Ressourcenordner (zusammen mit der Datei) erschien nicht – Prabu

+0

Ich habe Ihre Frage überprüft. Es scheint, dass Sie nicht wollen, dass es in das Glas eingeschlossen wird, aber Sie wollen es separat neben dem Glas sitzen, was nicht automatisch möglich ist. Sie können den Ressourcenordner nur neben dem JAR platzieren. Packe sie zusammen in einer Zip-Datei und lass sie entpacken und ändere die Ressourcen (verschiebe sie in diesem Fall aus dem 'src'-Ordner!) –

0

Sie können die Ressourcendateien separat in das Jar einfügen, indem Sie ein Build-Tool wie Maven oder Gradle verwenden.

Zum Beispiel in Maven wir wie unten tun können:

<build> 
<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <includes> 
      <include>ExpirationDates.xlxs</include> 
     </includes> 
     <!-- relative to target/classes 
      i.e. ${project.build.outputDirectory} --> 
     <targetPath>..</targetPath> 
    </resource> 
</resources> 
</build>