chm w jar

0

Witam
potrzebuje uruchomić, chm ktory znajduje sie w jar niestety poniższy kod nie dziala

  if (Desktop.isDesktopSupported()) {
                   try {
                        Desktop.getDesktop().browse(new URI("moje.chm"));
                } catch (URISyntaxException ex) {
                        Logger.getLogger(Konwert.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (IOException ex) {
                        ex.printStackTrace();
                   }

              }

zostaje wyrzucony wyjątek
java.io.IOException: Failed to show URI/media/M/moje.chm
at sun.awt.X11.XDesktopPeer.launch(XDesktopPeer.java:93)
at sun.awt.X11.XDesktopPeer.browse(XDesktopPeer.java:82)
at java.awt.Desktop.browse(Desktop.java:386)
at konwersja.Konwert$12.actionPerformed(Konwersja.java:401)
at.....
....

0

Z klasy z której to wywołujesz pobierz class, następnie getResource() i masz już ścieżkę do bebechów jara. Reszta klasyczne łażenie po drzewie jak małpa.

0

owszem to działa ale gdy uruchamiam jara, ktory jest umieszczony np. na plytce niestety chm sie nie uruchamia i wyrzuca ten sam wyjatek ;[

0
 File Chm() throws IOException {
      
        File r = File.createTempFile("moj", ".chm");
        InputStream in = this.getClass().getResourceAsStream("moj.chm");
        OutputStream out = new FileOutputStream(r);

        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();
        out.close();
        r.deleteOnExit();
        return r;
    }
//otworzenie pliku
  if (Desktop.isDesktopSupported()) {
                    try {

                        Desktop.getDesktop().open(Chm());
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                }

i działa ;]

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