尝试了很多方法。有classloader相关的、jarfile、spring相关的。最后得到的结果是:不能从jar文件中以File对象返回里面的指定文件,若想读取文件内容,需要以流的形式!
如果真的非要返回文件,那么需要在中间步骤进行处理,以流的形式读取数据,并把数据信息存储在临时文件中,返回临时文件。切记这样做了之后需要及时删除临时文件,以免产生不必要的垃圾!
关于spring解决jar中读取文件的相关资料:
http://stackoverflow.com/questions/3447258/get-file-from-jar
http://stackoverflow.com/questions/2271926/how-to-read-a-file-from-a-jar-file
http://stackoverflow.com/questions/16842306/how-to-read-a-file-from-jar-archive
http://stackoverflow.com/questions/403256/how-do-i-read-a-resource-file-from-a-java-jar-file
展开全部/***Createsanew
Jar
File
toreadfromthespecified*
file
name.The
Jar
File
willbeverifiedif*itissigned.*@paramnamethenameofthe
jar
file
tobeopenedforreading*@throwsIOException...
什么是反射
反射是用来获取
指定
Class
文件
中
的属性及方法的
反射的重要性:在我们后面的框架写工程的情况下,我们拿到的都是第三方的
Jar包
,我们不直到里面都有哪些属性和方法,所以就需要我们的反射,把里面的属性和方法反射出来供我们使用
所有的Class
文件
也是类型,是个Class类
反射怎么使用
我们能获取到该类
中
私有的,或者是所有的包括私有公共的的方法,属性和构造器,我们来看一下代码
public static void reflexMethod03() throws ClassNotFoundExcept
private
File
getResource
File
(String
file
Path) throws IOException {
System.out.println("==================================");
ClassPathResour
public class HelloWorldMainApplication {
public static void main(String[] args) throws URISyntaxException, IOException {
//
file
Name是在当前类路径
中
的一个
文件
InputStream in = Hello
JAR
文件
是打包基于JAVA技术的解决方案的标准方法。它允许开发者将所有相关内容(.class、图片、声音、及所有支持的
文件
)打包到一个
文件
中
。
JAR
格式支持压缩、认证、版本号及其他
很多
特性。 如果你对于常用的ZIP格式比较熟悉的话,
JAR
文件
也就差不多。
JAR
文件
提供一种将多个
文件
打包到一个
文件
中
的方法,其
中
每一个
文件
可能独立地被压缩。
JAR
文件
所增加的内容是manifes
摘自:点击打开链接
JAR
文件
是打包基于JAVA技术的解决方案的标准方法。它允许开发者将所有相关内容(.class、图片、声音、及所有支持的
文件
)打包到一个
文件
中
。
JAR
格式支持压缩、认证、版本号及其他
很多
特性。
JAR
文件
提供一种将多个
文件
打包到一个
文件
中
的方法,其
中
每一个
文件
可能独立地被压缩。
JAR
文件
所增加的内容是manifest,它允许开发者可以提供附加的关于内容的
自己敲完了程序总会想去让别人看一看,问问意见、看看效果(好吧,其实就是为了装个比)
但是你不能保证每个人都安装了Java环境或者Java虚拟机
所以要想办法把我们的程序打包成exe
文件
来在windows系统下运行
下面是具体步骤:
一、先把自己的程序发布成
jar
文件
这是eclipse自带的功能,右键工程包-->Export
然后选择Java-->
JAR
file
,next