您当前的位置: 首页 >  Java

命运之手

暂无认证

  • 3浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Java】【项目发布】在Gradle项目中使用和打包图片资源

命运之手 发布时间:2021-06-15 18:18:32 ,浏览量:3

问题

Gradle构建的项目,和传统的Eclipse格式的项目不同,它默认只会编译java文件,不会将图片资源复制到编译目录

所以,这就需要我们手动做一些处理,手动复制资源文件到bin/out/build/classes等编译目录,打包时手动添加资源文件夹到jar包中

向工程中添加资源文件

默认是resources文件夹,建议使用默认文件夹

注意,resources是用来统一管理资源文件的,我们在打包和调用时,并不用这个文件夹,只用文件夹里面的东西,即路径中不包含resources这个单词

在这里插入图片描述 在IDE中使用资源文件

我们在IDE中运行代码,和打包成Jar包后再运行代码,本质上是差不多的

IDE中有一个编译目录,这个目录中存放的和Jar包中的内容是一模一样的

我们需要手动将资源文件,全部拷贝到这个编译目录下面

默认路径是build/classes/java/main,这个目录就相当于Jar中classpath的位置

在这里插入图片描述 将资源文件打包到Jar包中

在【Project Structure】的打包配置中,我们选中Jar包,就能向Jar包中添加内容,我们将整个resources文件夹添加进去即可

在这里插入图片描述 在代码中使用资源文件


	//获取编译后,class文件所在的目录
	//如果是Jar包,无法获取文件,则获取工作目录下的资源
	public static String getClasspathDirectory() {
	    try {
	        return Object.class.getResource("/").getFile().toLowerCase();
	    } catch (Throwable e) {
	        return System.getProperty("user.dir").toLowerCase().replaceAll("\\\\", "/") + "/";
	    }
	}

	//获取资源文件
	String file = ResourceUtils.getClasspathDirectory() + "swing/add.png";

由于Jar包中的资源文件,无法以File的形式访问,我们只能将资源文件拷贝到工作目录下面,或者以InputStream的方式访问资源


	InputStream stream = Object.class.getResourceAsStream("/swing/add.png");
	System.out.println("getResourceAsStream  " + stream);

关注
打赏
1654938663
查看更多评论
立即登录/注册

微信扫码登录

0.1018s