Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Не запускается из "Program Files"


Автор: Microsoft 10.2.2011, 00:23
Пожалуйста помогите исправить ошибку! 2 часа сижу -безрезультатно(
Запускаю получаю вот такой бред:
Цитата

C:\Program Files (x86)\Irverbs>java -jar Irverbs.jar 
java.io.FileNotFoundException: C:\Program%20Files%20(x86)\Irverbs\Irverbs.jar (╤ 
шёЄхьх эх єфрхЄё  эрщЄш єърчрээ√щ яєЄ№)

- это выдается в строке №20 в этом коде:
Код

    public static void main(String[] args) {
        Application app = new Application();
        //--------------------- Обработка параметров команд.стр. -------------------------
       if ((args.length >= 2) && (args[0].equals("-cd"))) {
            sCurrentDir = args[1];
            ApplicationZipfileName = sCurrentDir + "\\" + ApplicationZipfileName;
        } else { // запуск без параметра "-cd" (т.е. не из IDEA)
            String myClassName = app.getClass().getName() + ".class";
            URL urlJar = ClassLoader.getSystemResource(myClassName);
            ApplicationZipfileName = urlJar.getFile()/*.substring(6)*/;
            ApplicationZipfileName = ApplicationZipfileName.substring(
                   6, ApplicationZipfileName.indexOf('!'));
        }
        //-------------------------- Загрузка файлов данных ------------------------------
        try {
            list_of_irregular_verbs = loadVerbs();
            loadMusic();
            loadImages();
        } catch (IOException e) {
            System.out.println(e.toString());
            System.exit(1);
        }
        .......
        ....
        ...

Исключение возникает когда вызывается метод loadVerbs(), в котором открывается поток:
Код

    private static ArrayList<Tetra> loadVerbs() throws IOException {
        ZipInputStream zin = new ZipInputStream(new FileInputStream(ApplicationZipfileName));
        .....
        ...


Потому что ApplicationZipfileName содержит:
Цитата

C:\Program%20Files%20(x86)\Irverbs\Irverbs.jar

А должно быть:
Цитата

C:\Program Files (x86)\Irverbs\Irverbs.jar

ApplicationZipfileName как видно я получаю в строках 8...12.
PS: Конечно я понимаю можно втупую заменить все "%20" на " " но все же, как по нормальному это сделать? В чем дело, в кодировке? В чем?

Автор: Skipy 10.2.2011, 11:42
URL не может содержать пробелы, они заменяются на %20. URLDecode спасет отца русской демократии.

Автор: Microsoft 12.2.2011, 01:27
Спасибо !
Код

ApplicationZipfileName = URLDecoder.decode(urlJar.getFile(), "UTF-8");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)