先说下简单流程吧:

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文件的经历的更多相关文章

  1. Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包)

    1. 首先,右键你的Java工程,选择Export,在Java文件夹下选择Runnable JAR file,如下图所示: 2. 选择Runnable JAR file后,会弹出如下所示的对话框,选择 ...

  2. Eclipse中将含有图片资源的项目打包成jar文件

    前言: 最近学了GUI编程和UDP协议,心血来潮想做一个局域网内的聊天软件,前期都还算顺利,直到后来将整个项目打包成jar文件时遇到了困难.如图: 自己设置的图标不见了,但是也没有默认的图标,说明图片 ...

  3. Java 图片爬虫,java打包jar文件

    目录 1. Java 图片爬虫,制作 .jar 文件 spider.java 制作 jar 文件 添加执行权限 1. Java 图片爬虫,制作 .jar 文件 spider.java spider.j ...

  4. 用eclipse来制作并使用可执行的jar文件

    我近来用java写了一个股票收益分析的小程序,用于计算我的股票操作所带来的的收益.这里,记录了如何将源代码打包成可执行的命令的一个过程. 1:生成可执行的jar文件 选中工程,选择菜单中的export ...

  5. Java POI 导出带有图片的word

    1. 引入maven ,具体可以上github看一下,这里做简单的说明,是一个大神封装了一下 官方提供的语法 文本语法是 {{Text}} 图片语法是{{@Image}} 其他的自己去看官方文档 &l ...

  6. 导出带有图片的excel

    public static void main(String[] args) { try { FileOutputStream out = new FileOutputStream("d:\ ...

  7. PHP导出带有emoji表情的文本到excel文件出问题了

    前段时间做了一个导出用户信息(包含微信昵称)到excel文件的功能,一直没问题,今天突然有人反馈说导出来的数据有一些丢失了.我试了一下,发现有些数据导出没问题,有些有问题,某些列出现了空白,数据打印出 ...

  8. 如何在eclipse将程序导出成jar文件

    如何在eclipse将程序导出成jar文件 听语音 | 浏览:916 | 更新:2015-08-22 17:57 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选个靠谱师傅 ...

  9. 导出jar文件

    当我们编好一段代码时,就需要将其导出成应用程序,即jar文件(jar文件就是在Java运行环境下运行的应用程序).今天,巩固就教大家用eclipse导出jar文件. 第一步:找到eclipse,双击打 ...

随机推荐

  1. Javascript-- jQuery事件篇(1)

    jQuery鼠标事件之click与dbclick事件 用交互操作中,最简单直接的操作就是点击操作.jQuery提供了两个方法一个是click方法用于监听用户单击操作,另一个方法是dbclick方法用于 ...

  2. 判断CPU是大端还是小端

    #include "stdafx.h" #include <iostream> using namespace std; /* #大端模式(Big_endian):字数 ...

  3. Kill掉MySQL中所有sleep的client线程 (转)

    vim killsleep.sh #It is used to kill processlist of mysql sleep #!/bin/sh while : do   n=`mysqladmin ...

  4. Poj1218_THE DRUNK JAILER(水题)

    一.Description A certain prison contains a long hall of n cells, each right next to each other. Each ...

  5. 人物-IT-史玉柱:史玉柱

    ylbtech-人物-IT-史玉柱:史玉柱 史玉柱,1962年9月15日生于安徽省蚌埠市怀远县,商人.企业家. 1984年从浙江大学数学系本科毕业,分配至安徽省统计局工作.1989年深圳大学软件科学系 ...

  6. MyEclipse 手动安装Velocity 编辑器

    最近项目有使用Velocity 模板引擎,从而会用到*.VM页面!Myeclipse打开VM页面字体一片漆黑,哪有JSP那样看起来舒服(个人感觉)!为了解决这一问题就要安装Velocity编辑器,安装 ...

  7. 三 volatile关键字

    一:内存模型: 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入.由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问 ...

  8. tomcat部署虚拟主机-搭建两个应用以及httpd和Nginx的反向代理

    实验环境:CentOS7 前提:已经安装好tomcat,未安装请查看http://www.cnblogs.com/wzhuo/p/7111135.html: 目的:基于主机名访问两个应用: [root ...

  9. linux日常管理-查看系统负载

    查看系统的负载常用命令w 16:32::15是系统时间 up 16 min 是开机使用时间 1 user 是登录的用户数 重要 load average:0.00 0.00 0.00 负载分别表示1分 ...

  10. winform 客户端采用HTTP协议与服务端通信

    本来从来没有仔细研究过Http协议,今天因为公司业务需求,调试了半天,终于现在会Winform用Http协议与服务端通信了,其中常用的有POST和Get方式: 仔细看了人人网和新浪等大部分都是采用GE ...