Java jar文件在JEditorPane中加载html页面

Java jar文件在JEditorPane中加载html页面,java,swing,jar,executable-jar,Java,Swing,Jar,Executable Jar,我正在尝试将存储在jar文件中的html页面加载到帮助窗格中。到目前为止,当我在eclipse中运行它时,它是可以工作的,但是当我制作一个可运行的jar时,它就不能工作了,除非我把map res/pages/。。。在与jar文件相同的映射中 class HelpButtonHandler implements ActionListener{ @Override public void actionPerformed(ActionEvent arg0) {

我正在尝试将存储在jar文件中的html页面加载到帮助窗格中。到目前为止,当我在eclipse中运行它时,它是可以工作的,但是当我制作一个可运行的jar时,它就不能工作了,除非我把map 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);


        }


    }
使用gerResource()方法

url = getClass().getClassLoader().getResource("res/pages/help.html");
检查此链接


打包在.jar中的文件不是文件系统中的文件。您不能使用File类访问它

.jar中的文件称为应用程序资源。您可以使用以下方法访问它:


由您来确定文件是否正确打包在.jar中。如果
url1
为空,请检查.jar文件的结构。

将资源放入jar时,无法使用
文件访问它们。您需要通过(更准确地说:a)类加载器将它们作为资源进行访问。例如:

HelpButtonHandler.class.getResource("/res/pages/help.html");
确保将资源放在正确的位置:如果省略第一个斜杠(“
/
”),类加载器将尝试相对于类定位它(这通常不是您想要的)。

另请参阅。
HelpButtonHandler.class.getResource("/res/pages/help.html");