NetBeans Mit "externen" Dateien arbeiten-wie?

White_Fox

Top Contributor
Fröhliche Weihnachten allerseits :)

Folgendes: Ich möchte in einem Programm Unterstützung für mehrere Sprachen anbieten. Dazu will ich für jede Sprache eine Datei vorhalten, die die benötigten Strings enthält. Später, im fertigen Programm, soll es im Installationspfad einen Ordner geben der all diese Dateien enthält.

Wie aber bringe ich Netbeans dazu, diesen Ordner später beim Kompilieren in den dist-Ordner zu kopieren? Und wie kann ich während der Entwicklung damit einigermaßen komfortabel arbeiten, sodaß mir diese Dateien auch z.B. in Unittests (JUnit) zur Verfügung stehen? Idealerweise so, daß ich die gleichen Pfade im Programm benutzen kann und vor dem Kompilieren nicht ständig die Pfade ändern muß.
Und obgleich Netbeans 9 schon draußen ist, arbeite ich noch recht gern mit Netbeans 8.2.

Hat jemand eine Idee?
 

httpdigest

Top Contributor
Wieso sind es eigentlich immer die NetBeans user, die glauben, dass NetBeans = Java ist ;). Es ist vollkommen irrelevant, welche IDE du zum Entwickeln verwendest. Und nichts, was du in deinem Programm tust, ist bzw. sollte spezifisch für eine bestimmte IDE sein.
Lege einfach die Textdateien in einen classpath root und lade sie zur Laufzeit per ClassLoader getResource bzw. getReourceAsStream.
 

White_Fox

Top Contributor
Es ist eher eine Frage zu Netbeans als zu Java, das ist mir schon klar. Und im Quellcode selber will ich ja nix Netbeansspezifisches haben-deswegen frag ich ja. :)

Die Klasse, die die Dateien später auslesen soll, hab ich in einer eigenen Bibliothek angelegt, die benutze ich sicher nicht zum letzten Mal. Alles wild in den Programmordner zu werfen wäre auch eine Möglichkeit, allerdings hätte ich gern etwas Ordnung darin.
Den ClassLoader schaue ich mir aber trotzdem mal an, damit hab ich noch nie gearbeitet. Vielen Dank.
 

White_Fox

Top Contributor
Also-ich hab mir mal etwas zu ClassLoadern angelesen, ich sehe aber nicht wie mir das helfen kann.

Ich hatte gehofft, das über irgendwelche Projekteinstellungen oder notfalls z.B. über die Build.xml-Datei realisieren zu können. Damit kriege ich es zwar hin, daß die Dateien beim Bauen im erwarteten Pfad im dist-Ordner landen, allerdings wirft mein Programm zuverlässig eine FileNotFound-Exception wenn ich es in der IDE laufen lasse (und vermutlich wird die auch bei Unittests kommen).
Wie kann ich das z.B. beheben?
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Die Lösung, die ich meinte, basiert darauf, dass du die zu ladenden Ressourcen als Source bzw. Classpath Ressource hinzufügst. Jede IDE ist dann in der Lage, diese Ressource entsprechend auszuliefern (z.B. in den Classpath Folder des gestarteten Java-Prozesses zu kopieren - genauso wie es für aus .java-Dateien kompilierte .class-Dateien der Fall ist) oder im Falle eines Fat-Jars, diese an die entsprechende Stelle im Jar zu kopieren.
Siehe hierzu z.B. https://stackoverflow.com/questions/3718201/how-to-add-resources-to-classpath
Zum Laden dann entsprechend eben den ClassLoader gemühen:
- https://stackoverflow.com/questions/3294196/load-resource-from-anywhere-in-classpath

Du kannst die Ressourcen natürlich auch einfach in einen Dateisystem-Ordner legen und neben die ausgelieferte Jar-Datei legen und per Dateisystem-API z.B. via FileInputStream laden.
 

mihe7

Top Contributor
@White_Fox was Du willst, ist ein ResourceBundle. Das sind .properties-Dateien mit dem gleichen Basisnamen und angehängter Locale. Die Dateien müssen sich lediglich im gleichen Package im Classpath befinden, dann kann das Bundle geladen und auf die Übersetzungen in die vorhandenen Sprachen zugegriffen werden.

In einem ant-Projekt erstellst Du dazu einfach unter den Sourcen ein Package und dort eine .properties-Datei (z. B. bundle.properties) an. Das wird dann automatisch mitkopiert.

In einem maven-Projekt legst Du das Package unter "Other Sources" an (Projektansicht). In der Dateiansicht wäre dies unter src/main/resources bzw. für Tests src/test/resources. Maven packt die Ressourcen dann zum Jar dazu.

Außerdem bietet NetBeans unter Tools -> Internationalization -> Internationalization Wizard ein Tool an, um in Quelltexten vorhandene Strings zu "internationalisieren". Probiers einfach mal aus. Das Ergebnis ist nicht von NetBeans abhängig, sondern verwendet Standard-Javamethoden (java.util.ResourceBundle).

Nachtrag: gerade noch gefunden https://netbeans.org/kb/docs/java/gui-automatic-i18n.html#Exercise_2
 

White_Fox

Top Contributor
Danke euch beiden. :)

Ich hab es zwar noch-mit viel Probieren-über die build.xml hinbekommen-falls jemand anderes mal noch vor dem Problem steht: Dieser Schnipsel in der build.xml-Datei erstellt nach jedem Kompiliervorgang einen Ordner mit dem Namen "ordner" im dist-Ordner und kopiert alle Dateien, die unter ".../Projektordner/ordner/" zu finden sind hinein, sodaß diese Dateien dann zur Laufzeit über den Pfad "ordner/dateiname.dat" aufgerufen werden können.
Code:
<target name="-post-jar">
        <mkdir dir="${dist.dir}/ordner"/>
        <copy todir="${dist.dir}/ordner">
           <fileset dir="${basedir}/ordner" />
        </copy>
   </target>

Dennoch werde ich dieses hier wohl mit den RessourceBundle lösen. Das ist ja genau für mein Problem gemacht. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Einbinden von externen Dateien in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
G Teil der Eclipse Plugins in externen Ordnern auslagern? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
R Ant - Einbindung von externen Jars IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
krgewb IntelliJ durchsucht .log-Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
D lesen von json Dateien in Intellij IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
A Einbindung von FXML-Dateien in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
M Einzelne Java-Dateien mit Eclipse compilieren - Wie geht das? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
J Seltsames Verhalten von netbeans bezüglich fxml Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
A Eclipse Eclipse Mars Plugin Jar Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S Eclipse Tomcat, Eclipse, Jersey und Extjs - Wohin mit den HTML-Dateien? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
darekkay Eclipse Dateien temporär aus dem Projekt entfernen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
L Eclipse Eclipse - Dateien mit HTML-Syntax-Highlighting anzeigen, die nicht die Endung .html haben? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
K Eclipse Imports Aufräumen über viele Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
T Vor dem Bilden eines Projektes soll Eclipse allesautomatisch alle Dateien speichern IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
H Java Dateien in einen runnable jar packen mit eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
K NetBeans Netbeans führt geänderte Dateien nicht aus IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
K Eclipse Strings externalisieren -- properties-Dateien in separatem Ordner? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
O Eclipse code formatter (ctrl+shift+f) funktioniert nicht mit html-dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
reibi Subversive - Dateien ausschließen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 42
M Eclipse als CVS-Client für externe Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
J class-dateien verschwunden (eclipse) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
T Eclipse löscht meine Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Eclipse: Nach Absturz lassen sich keine Dateien mehr öffnen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J Eclipse erzeugt mir keine .class-Dateien mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
B Eclipse --- Localies - Properties-Dateien vergleichen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G Zusätzliche Java-Dateien verwenden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
A wie kann ich Netbeans Form Dateien in Eclipse benutzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
G Bitte helft mir dringend! Dateien gelöscht! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D netbeans Kann *.java dateien im Projects window nicht expand IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
A kstemmer java Dateien in eigenes Netbeans Projekt einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S cv neue dateien hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
C Eclipse - Pfade zur Speicherung der Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
J Einbinden von JAR Dateien in NetBeans und Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
L Eclipse: Per Tastatur zwischen geöffneten Dateien wechseln. IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G NetBeans | Dateien importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
E Eclipse: Dateien zu Projekt hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
F Dateien mit eclipse importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
B Externe Class-Dateien ins Jar-Archiv aufnehmen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
G Neuling -> wie kann ich in eclipse in anderen Dateien suc IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Eigene Jar-Dateien zu Netbeans-Projekt hinzufügen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
G Eclipse - Class-Dateien einfügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
F Tool zur Erstellung eines Klassendiagramms aus .java-Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Verwendung von class-Dateien in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
R Wie erstellt man JAR-Dateien unter JBuilder 2005 Foundation? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
K jar Dateien unter Netbeans anlegen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G [Eclipse] Argumente, Workspace Pfad, .java Dateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Mit Git auf Github arbeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
J Ist Egid das richtige um im Team an einem Projekt zu arbeiten? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
propra Mit mehreren Rechner an einem Projekt arbeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 24
F Arbeiten mit eGit IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
Z An einem Projekt mit mehreren Leuten arbeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15

Ähnliche Java Themen


Oben