Datei innerhalb des JARs von einer statischen Methode aufrufen

Beatsleigher

Bekanntes Mitglied
Moin moin,

Ich arbeite gerade an der Versionierung meines Programms, und möchte die Version-Daten (statt sie irgendwo herunterzuladen, diese Daten dann auf die Festplatte speichern und ggf. Sicherheitslücken kreiren) innerhalb der JAR haben. Spezifiscdh hier:
Code:
/AndroidToolkit/version/.version

So, nun habe ich eine statische Variabler progVer vom Typ double und möchte mittels der (statischen) Methode getVer() und einer BufferedReader den Text aus der Datei holen und dann in einer JLabel anzeigen.

Nun habe ich festgestellt, dass ich nicht auf this.getClass().getResource("") innerhalb einer statischen Methode zugreifen kann.

Gibt es irgend eine Möglichkeit, dies zu umgehen, und anderwaltig an die Resourcen ranzukommen?

Vielen Dank für eure Hilfe, und ich wünsche euch noch einen schönen Abend.
 
Hi,
Du kannst das jar auch einbinden und dann mit
Java:
public static void main(String[] args) {
   JarClass.setVersion(10);
   System.out.println(JarClass.getVersion());
}
die version setzten und wieder herauslesen.

In einem Eclipse- Projekt das jar- file hinzufügen:
Projekt selektieren, rechte Maustaste --> Properties --> linke Seite: Java Build Path selektieren --> rechte Seite: Add External JARs... clicken und dann das jar- file, das eingebunden werden soll, selektieren und mit ok bestätigen. Anschliessend kannst du wie oben gezeigt auf darauf zugreifen.

oder wenn dein jar- file schon im Projektordner ist: Add JARs... selektieren und dann im Projektordner das jar- file selektieren und mit ok bestätigen.

Wenn du dann am Schluss ein executable Programm erstellst, musst du dann noch darauf achten, dass das jar- File auch mitgenommen wird.
 
Hi,
Du kannst das jar auch einbinden und dann mit
Java:
public static void main(String[] args) {
   JarClass.setVersion(10);
   System.out.println(JarClass.getVersion());
}
die version setzten und wieder herauslesen.

In einem Eclipse- Projekt das jar- file hinzufügen:
Projekt selektieren, rechte Maustaste --> Properties --> linke Seite: Java Build Path selektieren --> rechte Seite: Add External JARs... clicken und dann das jar- file, das eingebunden werden soll, selektieren und mit ok bestätigen. Anschliessend kannst du wie oben gezeigt auf darauf zugreifen.

oder wenn dein jar- file schon im Projektordner ist: Add JARs... selektieren und dann im Projektordner das jar- file selektieren und mit ok bestätigen.

Wenn du dann am Schluss ein executable Programm erstellst, musst du dann noch darauf achten, dass das jar- File auch mitgenommen wird.

Danke für die Antwort, jedoch hilft sie mir leider nicht weiter.
Die JAR soll die Versionierung in einer Datei haben, da ich diese einmal als double und einmal als String dort habe.

Code:
verString::J1.0
verDouble::1.0

So sieht das dann in der Datei aus.

Zudem, habe ich nicht verstanden, wieso ich jetzt eine externe JAR einbinden soll.
Und ich benutze NetBeans - Ich mag Eclipse nicht.
 
hi,
Und ich benutze NetBeans - Ich mag Eclipse nicht.
ok.
Zudem, habe ich nicht verstanden, wieso ich jetzt eine externe JAR einbinden soll.
Vielleicht hab ich da was falsch verstanden...
Ich sehe es mal so:
Im jar ist eine Datei, z.b. Version.txt, in welcher die beiden Resourcen:
verString::J1.0
verDouble::1.0
definiert sind.
Du willst nun auf diese Resourcen zugreifen, also auslesen:
Dies kann nun so gemacht werden:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReadFromResource {	
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(ReadFromResource.class.getResourceAsStream("Version.txt")));
		String str ;
				
		try {
			while ((str = br.readLine()) != null ) {
				System.out.println(str);
			}
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

ist es das was du möchtest?
 
hi,

ok.

Vielleicht hab ich da was falsch verstanden...
Ich sehe es mal so:
Im jar ist eine Datei, z.b. Version.txt, in welcher die beiden Resourcen:
verString::J1.0
verDouble::1.0
definiert sind.
Du willst nun auf diese Resourcen zugreifen, also auslesen:
Dies kann nun so gemacht werden:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReadFromResource {	
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(ReadFromResource.class.getResourceAsStream("Version.txt")));
		String str ;
				
		try {
			while ((str = br.readLine()) != null ) {
				System.out.println(str);
			}
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

ist es das was du möchtest?

Genau das. Danke vielmals.
 

Zurück
Oben