getresource 路径转义,ClassLoader.getResource()不适用于.jar文件

I have the following code:

private final ImageIcon placeHolder = new ImageIcon(this.getClass().getClassLoader().getResource("Cards\\trans.png"));

But this does not work once my application exported into a .jar file.

解决方案

Your "\t" is being compiled as a tab - you need to escape it:

private final ImageIcon placeHolder = new ImageIcon(

this.getClass().getClassLoader().getResource("Cards\\trans.png"));

Note the double backslash. This may not be the only thing wrong, of course - but it's a start...

In fact, I would specify it with a forward slash instead. That works on both Windows and Unix-based OSes anyway, and it also works with jar files. The only reason I highlighted the double backslash was to raise the point of string escaping in general. Try this:

private final ImageIcon placeHolder = new ImageIcon(

this.getClass().getClassLoader().getResource("Cards/trans.png"));

Next, make sure you've got the exact correct name for the file, including case. Even though Windows file systems aren't generally case-sensitive, jar files are. If it's actually "cards" instead of "Cards" or "TRANS.png" instead of "trans.png", it won't work.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值