Могу ли я использовать Jar API в веб-приложении для запуска? - PullRequest
0 голосов
/ 27 марта 2012

Мне бы очень хотелось узнать, смогу ли я заставить это приложение работать с JWS.Это началось как клиентское приложение с парой папок с файлами пользовательских данных.Пользователь может бездействовать с этими папками - даже добавлять файлы данных из сети.... Введите JWS ...

Этот код работал с файлом JAR, не использующим JWS, но он не может найти файл JAR при использовании JWS.(jarName = "myjar.jar")

    static public ArrayList<String> getJarFileList(Dir d, ExtFilter ext) {
    ArrayList<String> list = new ArrayList<String>();

    try {
        FileInputStream fis = new FileInputStream(jarName); 
        JarInputStream jis = new JarInputStream(fis);

        JarEntry jarEntry = null;
        do {
            jarEntry = jis.getNextJarEntry();
            if (jarEntry != null) {
                String fileName = jarEntry.getName();
                if(d == null || fileName.startsWith(d.toString())) {
                    if(ext == null || ext.accept(null, fileName))
                        list.add(fileName);
                }
            }
        } while (jarEntry != null);
        jis.close();            
    } catch (IOException ioe) { }

    return list;
}

В конце я хочу получить список файлов данных в JAR и сохранить их в локальной папке, которую я создаю на клиенте.Если возможно, я бы не хотел точно знать имена всех файлов в JAR, которые мне нужно будет получить - следовательно, getJarFileList (для определенного каталога и расширения имени файла).

Если прямого пути нет, возможно, самое простое для меня - заставить приложение перейти на веб-сайт и скопировать файлы данных на клиент?Любые предложения о том, какой API использовать для перемещения этих файлов, также приветствуются.

TIA - Марк

получил исправление ... опубликует его через 2 часа ...

1 Ответ

0 голосов
/ 28 марта 2012

Я попробовал пару вещей, и я добился определенного успеха!

Первой (неудачной) попыткой было взять мои (по умолчанию / установить) каталоги пользовательских данных с файлами и поместить их в файл jar внутри основного файла jar. Затем я успешно получил JarInputStream внутреннего jar-файла после InputStream, возвращаемого getClass (). GetClassLoader (). GetResourceAsStream ("myinnerjar.jar"). У меня возникли проблемы при попытке извлечь из этого отдельные файлы / потоки.

Во второй (успешной) попытке я поместил jar файлов данных на стороне сервера и указал URL-адрес в моем приложении JWS. url.openStream () работал, а затем просто in.read () и out.write (). Это работает из JAR на моем компьютере, а также в Java Web Start. Я могу создавать локальные папки, полные файлов данных, в моем приложении JWS.

Единственное, с чем нужно иметь дело, это куда идут локальные файлы (я дал относительные пути вывода), а в Windows 7 они ходили в разные места ... Хи-хи. Я думаю, что для различных платформ я буду рутировать эти папки в домашнем каталоге пользователя.

TIA- Mark

...