Eclipse Export Probleme

JustinGolz

Mitglied
Moin eine Frage,
Wenn ich mein Projekt exportieren habe und dann die JAR Datei starte findet mein Programm eine txt Datei nicht mehr. Sobald ich aber in Eclipse bin und das Programm dort starte funktioniert alles.
https://gyazo.com/2816843490ef605f97cc3b356af1361b
Es geht um die Datei high.txt
Muss ich die anders einfügen oder so?
Wurde eingeführt über die Import Funktion von Eclipse
 
Zuletzt bearbeitet:
Keine Ahnung wie du das File lädst - ohne Code kann man da nicht viel sagen.
Ins blaue geraten würde ich sagen, du solltest das File als Classpath Ressource laden - schau dir dazu am besten getResourceAsStream() / getResource() an
 
Hier ein kleines Beispiel:
Java:
BufferedReader reader = new BufferedReader(
   new InputStreamReader(
       getClass().getClassLoader().getResourceAsStream(
           "relativer/pfad/level.txt")));
 
wäre das mein relativer Pfad?
Code:
/schnellesspiel/high

Wenn ich auf die Datei high rechts klicke kann ich Copy Qualified Name anklicken. Ist das der Pfad?
 
Ok komme einfach nicht weiter. Ich will halt eine Text Datei in meinem Fertigen Programm haben sodass diese Datei keiner Editieren kann, aber das Programm dort Sachen speichern / lesen kann.
Weiß aber verflucht nochmal nicht wie ich diese dumme txt Datei auslesen kann. Sobald das Programm exportiert ist und gestartet kennt er die txt datei nicht mehr. Nur im Eclipse Package Explorer 🙁
 
Dann zeig doch mal den Code wie du die Datei lädst, und nenne den Pfad der Datei in der du den Code hast und auch den Pfad wo die auszulesende Datei liegt
Ach und schreib auch wie du das Projekt exportierst
 
Also es ist so: die Datei musst du relativ zu der Klasse angeben, von der du die Datei laden willst.
Mit ClassLoader relativ zum root, nicht zur aktuellen Klasse 😉

Ok komme einfach nicht weiter. Ich will halt eine Text Datei in meinem Fertigen Programm haben sodass diese Datei keiner Editieren kann, aber das Programm dort Sachen speichern / lesen kann.
Das ist nicht möglich.
Entweder sie liegt in deinem Programm, dann ist sie nur Lesbar.
Oder sie liegt außerhalb, dann ist sie grundsätzlich editierbar, aber eben für jeden.
 
1. Ich erstelle ein File in meinem Projekt mit dem namen "high"
https://gyazo.com/c00136e5df89690a92e8133869cc0de2
https://gyazo.com/0f6412c7db055e361a6f4b3a6c10bef0
2. Die Datei landet hier und bekommt diesen Inhalt von mir
https://gyazo.com/b636c470f4fceec29131e454aac822e1
3. Mein Programm Code wo die Datei gelesen werden soll
https://gyazo.com/246af16e9d49ae986d60721357a87c0f
4. Ich führe mein Programm über Eclipse aus und start mit der "high" Datei
https://gyazo.com/a78e212a1027ef813a684f9d371f167b
5. Ergebnis
https://gyazo.com/82e40a982209a78abf29adf98826cbe1
6. Ich Exportiere mein Projekt
https://gyazo.com/98c0650de967eeaeeae62f1ad43d4a00
7. als Runnable JAR File
https://gyazo.com/e2b07c6eb458bc8a1a3dee3ca03445e9
https://gyazo.com/f0b49f476d6fcaec9fb89158555d4c29
8. Ich starte die JAR Datei auf meinem Desktop und sehe das im Textfeld nichts steht
https://gyazo.com/53e8535347114bd04e2835a5b0f5d830


Danke für eure zukünftigen Antworten 🙂
LG Justin
 
Die "high" Datei hast du doch in deinem Eclipse-Projekt angelegt?
Du musst sie von dort dahin kopieren, wo auch die JAR liegt.
 
Ok das hat geklappt Danke!!! aber gibt es da keine elegantere Lösung für?
Nicht immer die "high" Datei in die JAR kopieren sondern gleich mit exportieren lassen?
 
Ich geh mal davon aus, dass sie einen Highscore oder ähnliches beinhalten soll?

Dann würde ich einfach bei Start des Programmes die Datei automatisch erstellen lassen
 
Ok den habe ich noch eine Frage. Wie mache ich es das keiner außer das Programm die high Datei verändern kann.
Wenn ich die Datei schreibgeschützt setzte kann auch das Programm nicht mehr drauf zugreifen.
Lg Justin
 
Ja aber der User der die Datei bekommen soll, soll nur die JAR Datei haben und nicht noch x viele zusatz Sachen die sollten eigentlich alle in der JAR Datei sein damit man die nicht sieht.
 
Dateien in der JAR kannst du nicht ändern - sie muss also außerhalb liegen, nicht im gleichen Verzeichnis, aber zumindest irgendwo außerhalb der JAR
 
geht nicht.

(Abgesehen von obskuren Wegen übers Rechtemanagement etc pp, die hier ziemlich falsch wären)

Klar geht das.

Bilde einen Hash über den Datei Inhalt und schreibe ihn ans Ende der Datei. Beim Laden der Datei schaust du halt ob der Hash noch stimmt. Wenn nicht, dann hat jemand die Datei editiert der es nicht sollte.

Gruß

Claus
 

Neue Themen


Zurück
Oben