【问题标题】:Accessing File With Executable Jar使用可执行 Jar 访问文件
【发布时间】:2013-07-16 19:55:02
【问题描述】:

我得到一个像这样的文件:

File testHeaderFile = new File(ClassLoader.getSystemResource("Images/redHeader.jpg").toURI());

这在我在 eclipse 中编译时有效,但在我从可执行 jar 运行时无效。

此代码正在使用 jar:

ImageIcon pc = new ImageIcon(getClass().getClassLoader().getResource("Images/stateFarmTheme1Icon.png"));

我到底做错了什么?

【问题讨论】:

  • 你能提供你项目的树目录吗?

标签: java file jar io


【解决方案1】:

每个类加载器都有自己的搜索路径。

ClassLoader.getSystemResource: 只需从用于加载类的搜索路径(包括eclipse中的项目目录)中找到指定名称的资源,通过系统类加载器定位资源即可,不包括可执行jar目录。

getClass().getClassLoader().getResource: 该方法将首先在父类加载器中搜索资源; 如果parent为null,则查找虚拟机内置类加载器的路径。所以,包含可执行jar目录。

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多