java-jar文件找不到资源

时间:2010-01-31 12:38:07

标签: java windows resources

我正在研究java应用程序,在程序中我使用了一些文件,如图像,本地数据库和.htm文件(用作帮助文件)。

我试图访问这些资源,与位置无关。所以我在包含我的源文件的包中创建了一个名为resources的子文件夹,我已经把所有这些图像放在那里等等。我通过.getResource()方法访问它们,而不是使用路径。例如,我是如何访问图像资源的:

lang_icon=new javax.swing.ImageIcon(getClass().getResource("/myeditor/resources/checked.gif"));

问题是,当构建.jar文件时,它无法正常工作。它成功加载图像但无法连接到本地数据库或打开.htm文件  这是我用来访问.htm文件的代码(当我通过Netbeans运行应用程序时它可以正常工作)

URL helpFile= getClass().getResource("/myeditor/resources/help/help.htm");

    try {
        BrowserLauncher launcher = new BrowserLauncher();
        launcher.openURLinBrowser(helpFile.toString());
    } catch (BrowserLaunchingInitializingException ex) {
        Logger.getLogger(mainAppFrame.class.getName()).log(Level.SEVERE, null, ex);
    } catch (UnsupportedOperatingSystemException ex) {
        Logger.getLogger(mainAppFrame.class.getName()).log(Level.SEVERE, null, ex);
    }

这是我用来访问本地数据库的代码

URL url = getClass().getResource("/myeditor/resources/icddb");
    database = new File(url.getFile());
    try
       {
            Class.forName("org.hsqldb.jdbcDriver");

            con = DriverManager.getConnection("jdbc:hsqldb:file:" + database+"\\icddb", "sa", "");

当我尝试通过.jar文件打开.htm文件时,它会显示此错误“此文件没有与之关联的程序来执行此操作。在控制面板的”文件夹选项“中创建关联”。 /> 当我尝试连接到我的本地数据库时,它说“严重无法重新打开数据库” 所有想法都赞赏! 谢谢你,对不起我的英文!

1 个答案:

答案 0 :(得分:1)

您可以打印出要求浏览器打开的网址吗?这应该更清楚地表明发生了什么。

我怀疑您从getResource()获取的网址是指向您的.jar文件中的的网址。因此浏览器将难以打开它。我(也许)将该文件解压缩到一个临时目录并打开浏览器。