3

jar ファイル内に保存されている html ページをヘルプ JEditorPane にロードしようとしています。これまでのところ、Eclipseで実行すると機能しますが、実行可能なjarを作成すると、マップres/pages/...をjarファイルと同じマップに配置する場合を除き、機能しません

class HelpButtonHandler implements ActionListener{

        @Override
        public void actionPerformed(ActionEvent arg0) {
             infodex = new JEditorPane();
                helpDialog = new JDialog();


            URL url1 = null;
            try {
                url1 = (new java.io.File("res/pages/help.html")).toURI().toURL();
            } catch (MalformedURLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }


            try {
                infodex.setPage(url1);
            } catch (IOException e) {
                e.printStackTrace();
            }


            helpDialog.getContentPane().add(new JScrollPane(infodex));
            helpDialog.setBounds(400,200,700,600);
            helpDialog.show();
            infodex.setEditable(false);
            Hyperactive hyper = new Hyperactive();
            infodex.addHyperlinkListener(hyper);


        }


    }
4

3 に答える 3

1

リソースを jar に入れると、 を使用してそれらにアクセスすることはできませんFile(より正確には a)クラスローダーを介してリソースとしてそれらにアクセスする必要があります。例えば:

HelpButtonHandler.class.getResource("/res/pages/help.html");

リソースを適切な場所に配置してください。最初のスラッシュ (' /') を省略すると、クラスローダはクラスに対して相対的にリソースを見つけようとします (これは通常、必要なものではありません)。

于 2013-10-25T10:23:20.977 に答える