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