社区
Java SE
帖子详情
如何将java程序在打包时做精简
hayashiri
2012-04-06 05:56:11
最近写了些java小程序,引用了一些第三方的包,在最后编译出来用exe4j打包成exe时,发现明明很小一个程序,最后打包出来有40M之多,因为引用的第三方包里面我实际使用到的class可能并没有那么多。我就在设想如何在java程序打包的时候分析整个工程中我所写的代码的class之间的迭代引用关系,将我这个工程最终必须要使用的class从各lib包里面抽离出来,做成一个精简的jar包,里面的class能够满足我当前程序的运行就行。
跪求解决方案~~~
...全文
171
12
打赏
收藏
如何将java程序在打包时做精简
最近写了些java小程序,引用了一些第三方的包,在最后编译出来用exe4j打包成exe时,发现明明很小一个程序,最后打包出来有40M之多,因为引用的第三方包里面我实际使用到的class可能并没有那么多。我就在设想如何在java程序打包的时候分析整个工程中我所写的代码的class之间的迭代引用关系,将我这个工程最终必须要使用的class从各lib包里面抽离出来,做成一个精简的jar包,里面的class能够满足我当前程序的运行就行。 跪求解决方案~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hayashiri
2012-04-11
打赏
举报
回复
算了散分结贴走人
dalancon
2012-04-10
打赏
举报
回复
看不懂啊 顶 支持一下
shine333
2012-04-09
打赏
举报
回复
话说java真不是这样用的。要想用exe,还不如学习如何写innosetup之类。
真的小功能还是用C++或者C#吧
安特矮油
2012-04-09
打赏
举报
回复
没弄过那么高级的,不过如果你想精简,要么你就自己写一些吧,因为你很难知道他的包里面的引用关系,
hayashiri
2012-04-09
打赏
举报
回复
周一了,新的一周又来了,各位同学多多发表意见呀
hayashiri
2012-04-09
打赏
举报
回复
真的没有办法了么?还是没有人往这个方面想过呢?
hayashiri
2012-04-07
打赏
举报
回复
不是的,没打包JRE,比如,我自己写的代码打出来的jar包50k,引用的lib30M,那我打包的时候必须要将这30M的jar打包进去,其实可能这30M的jar或多或少都有引用,但是肯定每个类都引用到了,我是想如何在打包的时候,将我写的程序中引用到的lib里的class(包括这些class迭代一用的其他class)和我写的class打一个最精简的包。
hayashiri
2012-04-07
打赏
举报
回复
5楼的同学,可能你理解错了,其实我要的不是想要将jvm打包精简到我的exe中,我的意思是将我整个工程里面引用的lib精简,比如我在工程中引用了
a.jar
aa.class
ab.class 其中ab.class引用了aa.class
ac.class
ad.class -以下的class没有我工程中的任何类引用(包括类间的迭代引用)
....
b.jar
ba.class
bb.class bb.class引用了bc.class
bc.class
....
c.jar
ca.class
cb.class
cd.class cd.class引用了ca.class
.......
如果我在这个工程中自己写的代码直接引用了ab.class,bb.class,cd.class.那么我想在打包时,只打包我自己写的代码的class,以及aa.class,ab.class,bb.class,bc.class,ca.class,cd.class.因为在这个工程中,只需要这些class就可以正常运行我的程序,以达到祛除不必要的class进行程序精简的目的,可能我这几个lib看起来精简不了多少,但是如果工程引用的lib太多,但是实际上我自己写的代码没有引用(包括迭代引用)到所有的类,那么这个精简是不是很有必要呢
不知道我这个描述同学们能看明白么
dxqrr
2012-04-07
打赏
举报
回复
GreenJVM可以精简rt.jar,至于第三方jar包,没试过,LZ可以试下
原来缘来
2012-04-06
打赏
举报
回复
肯定是把JRE也打到里面了,测试方法-->找一个没有安装JDK并且没有安装JRE的电脑,点击你的.exe文件,看能否运行,如果运行成功,证明把JRE打到里面了
nj_dobetter
2012-04-06
打赏
举报
回复
你是不是包上了JRE?
hayashiri
2012-04-06
打赏
举报
回复
没有人帮忙么?还是我的问题没描述清楚呢?
Java
打包
jar生成exe(极限
精简
完全攻略)
大家都知道,通常
Java
程序
需要JVM与OS互动才能运行于本地环境之上,所谓鱼与熊掌不可兼得,这样
做
虽然极大降低了
程序
的移植难度,却同
时
增加了
程序
的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的
Java
...
Java
的jar包
打包
为exe安装
程序
内包含3个版本jar(64-32-
精简
版)包含jar
打包
为exe运行
程序
,exe
打包
为exe安装
程序
,可直接安装,不依托安装电脑是否有环境
java
程序
打包
成.exe可安装文件(包含全部工具,和
精简
jre工具,附说明文件)
java
程序
打包
成.exe可安装文件 包含全部工具,和
精简
jre工具,附说明文件 包含说明文件
Java
工程
打包
成安装
程序
方法_培训文档
Java
工程
打包
成安装
程序
方法_培训文档 包括单.jar的文件
打包
发布与jar/资源/lib一起
打包
发布介绍
精简
版
JRE
精简
版
java
虚拟机
在开发
java
软件后要想让自己的变成可执行
程序
,那么项目中必不可少的
java
虚拟机JRE要准备好
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章