eclipse导出带有图片、音效、其他二进制文件的jar文件的经历
先说下简单流程吧:
1、选中“项目”,右键-》export-》java的“jar file”-》勾选“export generated clas files and resources”-》设置生成的jar文件的路径和名称-》next-》next-》在“select the class of the application entry point”里面选择入口类-》finish。
2、流程看起来不复杂,但是对于一个刚学java的人来说,可能要抓狂:java是区分大小写的,包括文件名。这一定要注意!
3、在进行export之前,最好先右键选择refresh一下,不然如果添加了文件或者删除了文件或者文件的其他改名等,都让你莫名其妙。
说下我碰到的问题和怎么解决的吧,我初学java,只知道可以这样解决,不知道标准答案,也不知道有没有更好的答案。
1、我有3个资源文件夹,分别是images、musics、map,里面分别放着图片(jpg、png等)、音效(midi)、二进制文件。开始打包前,这些文件夹是放在最外面的,即跟src目录同级。调试运行没问题后,我就运行export打包了。执行打包后的jar文件,发现找不到资源文件!自己弄了半天,没弄好,看网上的帮助,知道要用xx.class.getResource(/images/xx.jpg)这种方法,可是还没弄好,自己写测试代码分析,原来生成jar文件的根目录不是src的父目录,而是编译生成的bin文件夹!
解决方案:将images、musics、map目录放到src目录,右键工程点refresh,会自动同步到bin目录下(这个有点神奇)。
2、将工程里面所有Toolkit.getDefaultToolkit().getImage(strFile)打开文件的方式换成new ImageIcon(xx.class.getResource(str)).getImage()这种格式,例如原来是Image imgBg = Toolkit.getDefaultToolkit().getImage("images\\background.png");
换成imgBg= new ImageIcon(test.class.getResource("/images/background.png")).getImage(); 这里有两点要注意的:第一是images前面要加“/”;第二是不能用test.class.getResource("/images/background.png").getFile()!必须用ImageIcon打开url,然后再从imageIcon得到Image。
3、将工程里面所有File file = new File(fileName)的读取文件方式;换成InputStream is = FileTool.class.getResourceAsStream("/。。。这里是文件路径文件名"); 这种方式。
说白了,jar操作里面的文件,只能用根目录的相对路径,而这个根目录的相对路径是通过class来定位到的!另外,jar打开里面的文件,要用getResource得到的url或者getResourceAsStream得到的InputStream !
给些代码示例:
imgBg= new ImageIcon(test.class.getResource("/images/background.png")).getImage();
InputStream in = FileTool.class.getResourceAsStream("/map/grade" + index + ".dat");
DataInputStream din = new DataInputStream(in);
sequence = MidiSystem.getSequence(GameMidi.class.getResource(/musics/1.mid));
eclipse导出带有图片、音效、其他二进制文件的jar文件的经历的更多相关文章
- Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包)
1. 首先,右键你的Java工程,选择Export,在Java文件夹下选择Runnable JAR file,如下图所示: 2. 选择Runnable JAR file后,会弹出如下所示的对话框,选择 ...
- Eclipse中将含有图片资源的项目打包成jar文件
前言: 最近学了GUI编程和UDP协议,心血来潮想做一个局域网内的聊天软件,前期都还算顺利,直到后来将整个项目打包成jar文件时遇到了困难.如图: 自己设置的图标不见了,但是也没有默认的图标,说明图片 ...
- Java 图片爬虫,java打包jar文件
目录 1. Java 图片爬虫,制作 .jar 文件 spider.java 制作 jar 文件 添加执行权限 1. Java 图片爬虫,制作 .jar 文件 spider.java spider.j ...
- 用eclipse来制作并使用可执行的jar文件
我近来用java写了一个股票收益分析的小程序,用于计算我的股票操作所带来的的收益.这里,记录了如何将源代码打包成可执行的命令的一个过程. 1:生成可执行的jar文件 选中工程,选择菜单中的export ...
- Java POI 导出带有图片的word
1. 引入maven ,具体可以上github看一下,这里做简单的说明,是一个大神封装了一下 官方提供的语法 文本语法是 {{Text}} 图片语法是{{@Image}} 其他的自己去看官方文档 &l ...
- 导出带有图片的excel
public static void main(String[] args) { try { FileOutputStream out = new FileOutputStream("d:\ ...
- PHP导出带有emoji表情的文本到excel文件出问题了
前段时间做了一个导出用户信息(包含微信昵称)到excel文件的功能,一直没问题,今天突然有人反馈说导出来的数据有一些丢失了.我试了一下,发现有些数据导出没问题,有些有问题,某些列出现了空白,数据打印出 ...
- 如何在eclipse将程序导出成jar文件
如何在eclipse将程序导出成jar文件 听语音 | 浏览:916 | 更新:2015-08-22 17:57 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选个靠谱师傅 ...
- 导出jar文件
当我们编好一段代码时,就需要将其导出成应用程序,即jar文件(jar文件就是在Java运行环境下运行的应用程序).今天,巩固就教大家用eclipse导出jar文件. 第一步:找到eclipse,双击打 ...
随机推荐
- Redis-benchmark使用总结
Redis-benchmark为Redis性能测试工具. 指令说明: Usage: redis-benchmark [-h <host>] [-p <port>] [-c &l ...
- Saiku_学习_02_Schema Workbench 开发mdx和模式文件
一.前言 saiku的查询都是通过cube来进行的.因此每当我们要进行一次多维度查询时,都要先修改xml.上传.重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件. 通过 workbench ...
- leetcode 34 Search for a Range(二分法)
Search for a Range Given a sorted array of integers, find the starting and ending position of a give ...
- raspi-config Expand root partition to fill SD card 原理
/********************************************************************************** * raspi-config E ...
- ACdream1430SETI(后缀自动机)
问题: Amateur astronomers Tom and Bob try to find radio broadcasts of extraterrestrial civilizations i ...
- elasticsearch监控平台cerebro-0.8.3 相关操作
上面这个平台是cerebro-0.8.3 在github上找就有了 #################### GET /hnscan_source_o_comm_drv_bad_bhv_occur/ ...
- ACM学习历程—FZU2148 Moon Game(计算几何)
Moon Game Description Fat brother and Maze are playing a kind of special (hentai) game in the clearl ...
- BZOJ4003:[JLOI2015]城池攻占
浅谈左偏树:https://www.cnblogs.com/AKMer/p/10246635.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php? ...
- bzoj 2125 最短路——仙人掌两点间最短路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2125 因为看了TJ又抄了标程,现在感觉还是轻飘飘的……必须再做一遍. 两点间的情况: 1.直 ...
- 【转】 Pro Android学习笔记(五一):ActionBar(4):标准和Tab模式
之前,我们学习的Action Bar是标准模式,Tab模式的如下图所示. 对于Tab,我们在Android学习笔记(二二): 多页显示-Tag的使用中学习过,但Action Bar的tab更适合fra ...