java 捆绑_java – 如何在jar文件中捆绑图像

在这里似乎有两个问题:

>如何让NetBeans在构建项目时将jar包含在生成的jar中?

>如何从jar中访问映像文件?

此应用程序适用于NetBeans 6.8并解决了两个方面的问题.

假设您有一个基于ant的Java应用程序项目.

这是项目的“文件”视图

JP

+ images

+ test.jpg

+ nbproject

+ src

+ jp

+ Main.java

+ test

+ build.xml

+ manifest.mf

在你的Main.java里面,你有这样的代码:

public static void main(String[] args) throws IOException {

// find the file in the file system.. probably not a good idea

File f = new File("images/test.jpg");

System.out.println(f.getCanonicalPath()+" "+f.exists());

当您从NB内部运行此项目时,您将得到以下输出:

/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true

当你运行代码包装到jar中时,你会得到这样的东西:

bash-3.2$pwd

/export/home/vkraemer/nbhg/web-main

bash-3.2$java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar

/export/home/vkraemer/nbhg/web-main/images/test.txt false

为了在执行jar时获得更好的效果,您需要执行以下操作:

将images目录添加为项目的源根目录.

右键单击该项目并选择“属性”项.将出现一个对话框.

在对话框左侧的列表中选择“来源”.这将改变对话框右侧面板的内容.

按“源包文件夹”表旁边显示的“添加文件夹…”按钮.将出现一个FileChooser.

使用此选择器选择图像文件夹,然后按OK按钮.图像文件夹的条目将被添加表.

使用“项目属性”对话框中的“确定”按钮接受更改并关闭对话框.

public static void main(String[] args) throws IOException {

// find the file in the file system.. probably not a good idea

File f = new File("images/test.jpg");

System.out.println(f.getCanonicalPath()+" "+f.exists());

URL url = Main.class.getResource("/test.jpg");

System.out.println(url);

当您从IDE内部运行项目时,您应该看到如下:

/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true

file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg

当你运行代码包装到jar中时,你会得到这样的东西:

bash-3.2$pwd

/export/home/vkraemer/nbhg/web-main

bash-3.2$java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar

/export/home/vkraemer/nbhg/web-main/images/test.jpg false

jar:file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar!/test.jpg

获取test.jpg文件的URL后,可以使用ImageIcon(URL)创建图标

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值