# ResourceBundle aus .jar auslesen > MissingResourceExcepti



## Till (8. Jul 2005)

Hallo Forum,

ich lese hier schon seit einiger Zeit, jetzt habe ich aber ein konkretes Problem, bei dem google, API und Arbeitskollegen noch nicht weiterhelfen konnten.

Es geht um den Zugriff auf .properties-Dateien aus einer .jar heraus.
i.d.R. geht das so: 

```
java.util.ResourceBundle.getBundle(
   "packagename/unterpackage/propertiesdatei_ohne_endung").getString("reload");
```

Dies läuft wunderbar, wenn ich mir selbst ein .jar bastel und es in den Classpath eines anderes Projektes reinziehe.

Nun aber das Problem:

*ZUR INFO:* Ich benutze folgende Library von JasperReports. Der Download ist hier:

sourceforge.net/projects/jasperreports

die Homepage: jasperreports.sourceforge.net/index.html

Dieses .jar ist eine mächtige Bibliothek zur Ausgabe von reports. Das alles könnt ihr auf der page nachlesen. Das ist aber weniger wichtig.



Das Problem tritt auf, wenn ich einen JasperViewer benutze. Innerhalb von jaspers Programmcode wird dies hier aufgerufen:
(Wenn ihr die Problematik nachstellen wollt, benutzt einfach diesen Code mit eingebundenem jasperreports.xxx.jar)


```
System.out.println(java.util.ResourceBundle.getBundle(
        "net/sf/jasperreports/view/viewer").getString("save"));
```

Der Fehler:


```
java.util.MissingResourceException: Can't find bundle for base name net/sf/jasperreports/view/viewer, locale de_DE
	at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
	at java.util.ResourceBundle.getBundleImpl(Unknown Source)
	at java.util.ResourceBundle.getBundle(Unknown Source)
	at Person.main(Person.java:112)
```


Er hat also augenscheinlich keinen Zugriff auf die .properties-Datei, denn sie befindet sich schon an angegebener Quelle. Ich sehe im Moment noch keinerlei Unterschied zu meiner selbstgebauten .jar, bei der das funktioniert.

Habt ihr spontane Ideen, ich gehe gerne jedem Vorschlag nach.

Vielen Dank im Voraus,

Till


----------



## Bleiglanz (8. Jul 2005)

ist Person selber in einem package?

dann lieber einen / am anfang, also /net/sf/...


----------



## Till (8. Jul 2005)

ein Slash am Anfang zeigt keine Veränderung (habe ich auch schon gedacht, da er ja quasi vom "Root-package" ausgehen sollte).

Person sitzt in meinem Beispiel nicht mit im .jar, bei der jasperreports.0.6.8.jar allerdings schon!

D.h., dass auch im .jar selbst der Zugriff auf eigene Resourcen fehlschlägt.


----------



## Guest (11. Jul 2005)

Hallo Forum,

nach einigem Nachforschen bin ich heute morgen wenigstens darauf gestoßen, wie man es zum Laufen bekommt.

Ich lege das .jar auf eine andere Festplatte und binde es als externes .jar in das Projekt (eclipse 3.1) ein.

Schon funktioniert es. Es muss allerdings in der Tat auf einer anderen Festplatte liegen.

Kann ich annehmen, dass es am classpath liegt? Weiß jetzt jemand, wo der Fehler liegen könnte?

Gruß,

Till


----------



## Till (15. Jul 2005)

Hallo,

eine richtige Lösung habe ich leider noch nicht. Mein Quellcode funktioniert jetzt aber schonmal mit diesem "anderen Festplatten"-Trick.

Ich habe von einem Experten gehört, dass dies evtl. an der Eclipse-Debug-Umgebung liegen kann. In einer ausführbaren .jar sollte so etwas dann nicht mehr vorkommen (wäre ja auch schön blöd).

Wenn ich mehr wissen wollte, melde ich mich hier.

ein schönes Wochenende wünscht

Till


----------

