Problem z plikami properties w aplecie

Odpowiedz Nowy wątek
2010-07-30 10:03
0

Witam.
Mam problem z odczytaniem a konkretniej znalezieniem plików properties w aplecie.
Generalnie, gdy uruchamiam applet pod eclips’em pliki properties znajdywane są bez problemów jednak, gdy uruchamiam applet na stronie dostaję wyjątek informujący o niemożliwości odnalezienia pliku properties dokładniej:

EXCEPTION: message\gui_pl.properties (System nie może odnaleźć określonej ścieżki)
java.io.FileNotFoundException: message\gui_pl.properties (System nie może odnaleźć określonej ścieżki)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at src.multi.util.MessageUtil.getMessage(MessageUtil.java:35)
    at src.multi.panel.MainMenuPanel.setLabels(MainMenuPanel.java:116)
    at src.multi.panel.MainMenuPanel.prepareObjects(MainMenuPanel.java:106)
    at src.multi.panel.MainMenuPanel.init(MainMenuPanel.java:64)
    at src.multi.panel.MainMenuPanel.<init>(MainMenuPanel.java:60)
    at src.multi.panel.MainMenuPanel.getInstance(MainMenuPanel.java:53)
    at src.multi.gui.StartApp.prepareObjects(StartApp.java:43)
    at src.multi.gui.StartApp.init(StartApp.java:27)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source) 

Struktura pliku jar appletu wygląda tak

- messager
        - gui_pl.properties
        - gui_en.properties
        - gui.properties
- META-INF
- src.multi …(inne pakiety)
- src.multi.util
        - MessageUtil.class

Klasę “MessageUtil” wykorzystuję do odczytania zawartości plików properties

package src.multi.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Locale;
import java.util.Properties;

public class MessageUtil {

    static Properties properties = new Properties();

    public static String GUI = "message/gui_";
    private static String EXT = ".properties";

    public static String getMessage(String propertiesName, String key) {
        String message = "";
        try {
            properties.load(new FileInputStream(propertiesName
                    + Locale.getDefault().getLanguage() + EXT));
            message = properties.getProperty(key);
        } catch (FileNotFoundException e) {
            log.exception(e);
            e.printStackTrace();
        } catch (IOException e) {
            log.exception(e);
        }
        return message;
    }
}

Na razię pod zmienną "propertiesName" podstawiam to, co jest pod zmienną statyczną "GUI".

Jednak jak już wspomniałem nie działa mi to na stronie.

Pozostało 580 znaków

2010-07-30 10:15
0

Miałem podobny problem.

U mnie roziwązanie było proste.

MAsz:

public static String GUI = "message\gui_";

Spróbuj:

public static String GUI = "\message\gui_";

Wiem, że to trywialne ale poważnie po zmianie zadziałało przy czym zaznaczam, że używam netbeans i u mnie bez tych "\" nawet w kompilatorze się nie uruchomiło.

pozdrawiam

Po edycji: teraz zajrzałem do kodu i ja używam ale getResourceAsStream() a nie mam teraz czasu by to przetestować na Twoim kodzie...jak nie znajdziesz rozwiązania to potem postaram się to zrobić.

getResourceAsStream znajdziesz w org.apache.commons.io


Another jam from the world for the jam from the voices of the world......

Pozostało 580 znaków

2010-07-30 11:12
0
lipkerson napisał(a)

Miałem podobny problem.

U mnie roziwązanie było proste.

MAsz:

public static String GUI = "message\gui_";

Spróbuj:

public static String GUI = "\message\gui_";

Wiem, że to trywialne ale poważnie po zmianie zadziałało przy czym zaznaczam, że używam netbeans i u mnie bez tych "\" nawet w kompilatorze się nie uruchomiło.

pozdrawiam

Po edycji: teraz zajrzałem do kodu i ja używam ale getResourceAsStream() a nie mam teraz czasu by to przetestować na Twoim kodzie...jak nie znajdziesz rozwiązania to potem postaram się to zrobić.

getResourceAsStream znajdziesz w org.apache.commons.io

A więc próbowałem z "\message\gui_" ale nie pomogło obecnie próbuję z getResourceAsStream() ale bez sukcesu dostaję ten sam błąd.

Pozostało 580 znaków

2010-07-30 11:14
0

FileNotFoundException - podaj mu pelna sciezke

Pozostało 580 znaków

2010-07-30 11:16
0

Znalazłem to w necie

http://www.velocityreviews.co[...]an-use-its-class-library.html

Coś pomogło?


Another jam from the world for the jam from the voices of the world......

Pozostało 580 znaków

2010-07-30 12:09
0
misty napisał(a)

FileNotFoundException - podaj mu pelna sciezke

Chyba nie do końca rozumiem, szukam plików properties które są w katalogu "message" tak jak wskazuje zmienna statyczna GUI. Katalog "message" znajduje się bezpośrednio w pliku jar.

Pozostało 580 znaków

2010-07-30 13:19
0

Udało się zrobiłem to w sposób jaki zaproponowałeś lipkerson użyłem getResourceAsStream.
Do klasy MessageUtil dodałem coś takiego:

MessageUtil mu =  new MessageUtil();
InputStream is = mu.getClass().getClassLoader().getResourceAsStream(propertiesName+ Locale.getDefault().getLanguage() + EXT);
properties.load(is);

i nie muszę zmieniać zmiennej statycznej GUI

Pozostało 580 znaków

2010-07-30 13:47
0

ech...dobrze czasami pomóc:-)


Another jam from the world for the jam from the voices of the world......

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0