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,双击打 ...
随机推荐
- CSS cursor 属性--css html 鼠标手型,鼠标形状,鼠标效果,样式
css鼠标手型cursor中hand与pointer Example:CSS鼠标手型效果 <a href="#" style="cursor:hand"& ...
- 【ACM-ICPC 2018 徐州赛区网络预赛】D.Easy Math 杜教筛
代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 20000000; ...
- Convolutional Neural Networks for Visual Recognition 3
Gradient Computing 前面我们介绍过分类器模型一般包含两大部分,一部分是score function,将输入的原始数据映射到每一类的score,另外一个重要组成部分是loss func ...
- freeMarker(十二)——模板语言补充知识
学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 1.特殊变量参考 特殊变量是由FreeMarker引擎自己定义的变量. ...
- HDU4699:Editor
浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=46 ...
- Git 系列之tag的用法---为你的代码标记版本号
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 本地仓库操作 远程仓库操作 其他 tag 操作 在做app开发的时候经常有版本的概念,比如v1.0.v1.1之类的,不同 ...
- HDOJ1059(多重部分和问题)
#include<cstdio> #include<cstring> using namespace std; +; ]; int dp[SIZE]; bool check() ...
- requests 的使用
1.1.实例引入 # 引入Requests库 import requests # 发起GET请求 response = requests.get('https://www.baidu.com/') ...
- Linux(C/C++)下的文件操作open、fopen与freopen via Boblim
Linux(C/C++)下的文件操作open.fopen与freopen open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. li ...
- tomcat安装与运行
实验环境:CentOS7 使用系统yum仓库安装: #安装基本包和开发工具包 [root@~ localhost]#yum install -y java-1.8.0-openjdk java-1.8 ...