锁定老帖子 主题:Java程序—如何精简JRE或者生成exe
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2008-06-10
最近想用java做一些桌面应用程序 比如进销存 但是老板不让 还是用delphi'
我觉得那还不如用c# delphi是不是用的人越来越少了呢? |
|
返回顶楼 | |
发表时间:2008-06-10
laiseeme 写道 最近想用java做一些桌面应用程序 比如进销存 但是老板不让 还是用delphi'
我觉得那还不如用c# delphi是不是用的人越来越少了呢? delphi用来做界面还是非常非常非常爽的~ |
|
返回顶楼 | |
发表时间:2008-06-10
tianzhihua 写道 王者之剑 写道 tianzhihua 写道 做成EXE到很简单,用C写一个,通过JNI调用JAVA就可以了,不过精简很难,去掉一些不必要的还有很大,参考:http://www.blogjava.net/tianzhihua/articles/99709.html
把这个问题提出来,就是想问大家的时间真的多到可以去学屠龙之技了吗? 做成一个这样的exe,比用一个bat文件调用javaw -jar,高明到哪里去呢? 昨天还看到一个同学说struts2的iterator标签不支持break,和这个java不能生成exe有异曲同工之妙。 不知道你看过SWT没有,或者做个C和JAVA互调没有,作用就在这,做成EXE只是一个很简单的应用,真真的作用是让JAV可以和C(其他语言)之间可以有个沟通的桥梁 没看过,老实说我对做这种程序没兴趣,尤其是两个小的可怜的程序之间的互通。 |
|
返回顶楼 | |
发表时间:2008-06-10
Nighthaven 写道 王者之剑 写道 Nighthaven 写道 因为很多用户的电脑上没有合适版本的jre。用一个软件的同时必须安装另外一个软件(jre)会给人一种流氓软件强行捆绑的感觉,而很多用户对此很抵触。更不要提用户电脑上的jre版本千变万化(有没有jre,是微软的还是sun的,是1.4还是1.6),与其大费周章强迫其安装你的软件所需要的版本,不如省心点把jre内置在产品里算了。
当然内置jre就牵扯到jre的大小问题,一个5m的软件内置一个10多m的jre……也许硬盘不在乎,但是对下载时间的影响还是非常明显的,软件下载的时候,用户的耐心是很有限的,所以越小越好。 至于证书的问题,连android都能发布~!无论你修改过的jre多么不符合java规范,只要你不把它叫成是java,那就不会有人管你~ android的发布协议不清楚,好像是开源免费的,至于能不能任意删减,增加,替换,然后重新编译,就不清楚了。 如果在你的产品中不提java,跨平台,可能是没人管。 但是如果自己修改sun的jre,在修改的时候就已经违反协议了,只不过你不发布,不商用,没有人能知道罢了。 为什么要用java做桌面应用呢, 个人觉得在windows下做桌面应用,可以用VB代替Java,现在用C#更快。 java做桌面应用还是不错的。拿游戏来说,windows平台的竞争者太多,小公司做个游戏卖不出去几份。如果兼容linux和mac,由于竞争对手相对较少,就相对容易卖出去。尤其是linux用户,对于游戏的渴望简直……当然linux和mac用户本身就很少,不过对于小公司来说,还是多少有些补益的。 而且就算不考虑跨平台,java因为有很多开源或者不开源的库可以用(尤其是和网络有关的库),还是挺好用的。当然还有一些人喜欢客户端和服务端使用同样的技术。1.6之后,java做桌面的劣势主要是jre最新版本的普及率过低。对于电信之类的大企业内部,由于jre很容易普及,swing(swt)做桌面还是挺流行的。 要生成exe什么的,应该不是大企业的要求:) 我不是说java不能做桌面应用,而是说不要去研究怎样生成exe,这样的屠龙之技,大家不要学。 要学最有价值的部分,才不会浪费时间,才能让自己有价值。 那这种事总要有人做吧? 用一位大姐的话说:让没有看到这个讨论的人去做吧! |
|
返回顶楼 | |
发表时间:2008-06-10
laiseeme 写道 最近想用java做一些桌面应用程序 比如进销存 但是老板不让 还是用delphi'
我觉得那还不如用c# delphi是不是用的人越来越少了呢? delphi没用过,不好评论。 如果只是用在windows平台,请用C#,因为简单。 如果你对Java很熟,学会不需要一个星期。 如果你对Java不熟,学会用C#做桌面程序比用Java做要容易得多。 如果你会delphi,用delphi做就好了(听说很好用,干嘛不用?),有空学学C#。 |
|
返回顶楼 | |
发表时间:2008-06-10
王者之剑 写道 tianzhihua 写道 王者之剑 写道 tianzhihua 写道 做成EXE到很简单,用C写一个,通过JNI调用JAVA就可以了,不过精简很难,去掉一些不必要的还有很大,参考:http://www.blogjava.net/tianzhihua/articles/99709.html
把这个问题提出来,就是想问大家的时间真的多到可以去学屠龙之技了吗? 做成一个这样的exe,比用一个bat文件调用javaw -jar,高明到哪里去呢? 昨天还看到一个同学说struts2的iterator标签不支持break,和这个java不能生成exe有异曲同工之妙。 不知道你看过SWT没有,或者做个C和JAVA互调没有,作用就在这,做成EXE只是一个很简单的应用,真真的作用是让JAV可以和C(其他语言)之间可以有个沟通的桥梁 没看过,老实说我对做这种程序没兴趣,尤其是两个小的可怜的程序之间的互通。 呵呵,那是你理解错误,你做的java的软件都没有和硬件打过交道,所以觉得是很小的,而硬件的驱动程序基本都是用C写的,这种情况就需要了,最常用的就是图像采集系统,所以这种情况基本是出现在大项目中的,虽然是两个小的可怜的程序之间的互通,但是确实项目中很重要的一部分 |
|
返回顶楼 | |
发表时间:2008-06-10
这么无聊的讨论居然没人隐藏。
自己没有这样的需求并不代表别人没有。 桌面程序对大小还是很敏感的。 1M的程序可能会多人还会下来看看,超过10M,估计大多人就懒得下来看看了。 C#或其他开发语言写桌面应用或许更方便,不过这也和个人的熟悉程度有关。 而且Java的跨平台能力还不错,用C#啥的就没这么方便了。 |
|
返回顶楼 | |
发表时间:2008-06-10
王者之剑 写道 Nighthaven 写道 王者之剑 写道 Nighthaven 写道 因为很多用户的电脑上没有合适版本的jre。用一个软件的同时必须安装另外一个软件(jre)会给人一种流氓软件强行捆绑的感觉,而很多用户对此很抵触。更不要提用户电脑上的jre版本千变万化(有没有jre,是微软的还是sun的,是1.4还是1.6),与其大费周章强迫其安装你的软件所需要的版本,不如省心点把jre内置在产品里算了。
当然内置jre就牵扯到jre的大小问题,一个5m的软件内置一个10多m的jre……也许硬盘不在乎,但是对下载时间的影响还是非常明显的,软件下载的时候,用户的耐心是很有限的,所以越小越好。 至于证书的问题,连android都能发布~!无论你修改过的jre多么不符合java规范,只要你不把它叫成是java,那就不会有人管你~ android的发布协议不清楚,好像是开源免费的,至于能不能任意删减,增加,替换,然后重新编译,就不清楚了。 如果在你的产品中不提java,跨平台,可能是没人管。 但是如果自己修改sun的jre,在修改的时候就已经违反协议了,只不过你不发布,不商用,没有人能知道罢了。 为什么要用java做桌面应用呢, 个人觉得在windows下做桌面应用,可以用VB代替Java,现在用C#更快。 java做桌面应用还是不错的。拿游戏来说,windows平台的竞争者太多,小公司做个游戏卖不出去几份。如果兼容linux和mac,由于竞争对手相对较少,就相对容易卖出去。尤其是linux用户,对于游戏的渴望简直……当然linux和mac用户本身就很少,不过对于小公司来说,还是多少有些补益的。 而且就算不考虑跨平台,java因为有很多开源或者不开源的库可以用(尤其是和网络有关的库),还是挺好用的。当然还有一些人喜欢客户端和服务端使用同样的技术。1.6之后,java做桌面的劣势主要是jre最新版本的普及率过低。对于电信之类的大企业内部,由于jre很容易普及,swing(swt)做桌面还是挺流行的。 要生成exe什么的,应该不是大企业的要求:) 我不是说java不能做桌面应用,而是说不要去研究怎样生成exe,这样的屠龙之技,大家不要学。 要学最有价值的部分,才不会浪费时间,才能让自己有价值。 那这种事总要有人做吧? 用一位大姐的话说:让没有看到这个讨论的人去做吧! 用exe4j,一路“next”,基本几分钟就能生成一个exe,算不得什么屠龙之技吧。 |
|
返回顶楼 | |
发表时间:2008-06-10
tianzhihua 写道 王者之剑 写道 tianzhihua 写道 王者之剑 写道 tianzhihua 写道 做成EXE到很简单,用C写一个,通过JNI调用JAVA就可以了,不过精简很难,去掉一些不必要的还有很大,参考:http://www.blogjava.net/tianzhihua/articles/99709.html
把这个问题提出来,就是想问大家的时间真的多到可以去学屠龙之技了吗? 做成一个这样的exe,比用一个bat文件调用javaw -jar,高明到哪里去呢? 昨天还看到一个同学说struts2的iterator标签不支持break,和这个java不能生成exe有异曲同工之妙。 不知道你看过SWT没有,或者做个C和JAVA互调没有,作用就在这,做成EXE只是一个很简单的应用,真真的作用是让JAV可以和C(其他语言)之间可以有个沟通的桥梁 没看过,老实说我对做这种程序没兴趣,尤其是两个小的可怜的程序之间的互通。 呵呵,那是你理解错误,你做的java的软件都没有和硬件打过交道,所以觉得是很小的,而硬件的驱动程序基本都是用C写的,这种情况就需要了,最常用的就是图像采集系统,所以这种情况基本是出现在大项目中的,虽然是两个小的可怜的程序之间的互通,但是确实项目中很重要的一部分 你说的图像采集那样复杂的确实没做过,和硬件打交道的做过,就是超市用的打小票的打印机。Java支持串口通讯,只要有打印机指令手册,封装一下就可以了,呵呵。没必要用VC++调打印机那样的方式编程。 |
|
返回顶楼 | |
发表时间:2008-06-10
Nighthaven 写道 王者之剑 写道 Nighthaven 写道 王者之剑 写道 Nighthaven 写道 因为很多用户的电脑上没有合适版本的jre。用一个软件的同时必须安装另外一个软件(jre)会给人一种流氓软件强行捆绑的感觉,而很多用户对此很抵触。更不要提用户电脑上的jre版本千变万化(有没有jre,是微软的还是sun的,是1.4还是1.6),与其大费周章强迫其安装你的软件所需要的版本,不如省心点把jre内置在产品里算了。
当然内置jre就牵扯到jre的大小问题,一个5m的软件内置一个10多m的jre……也许硬盘不在乎,但是对下载时间的影响还是非常明显的,软件下载的时候,用户的耐心是很有限的,所以越小越好。 至于证书的问题,连android都能发布~!无论你修改过的jre多么不符合java规范,只要你不把它叫成是java,那就不会有人管你~ android的发布协议不清楚,好像是开源免费的,至于能不能任意删减,增加,替换,然后重新编译,就不清楚了。 如果在你的产品中不提java,跨平台,可能是没人管。 但是如果自己修改sun的jre,在修改的时候就已经违反协议了,只不过你不发布,不商用,没有人能知道罢了。 为什么要用java做桌面应用呢, 个人觉得在windows下做桌面应用,可以用VB代替Java,现在用C#更快。 java做桌面应用还是不错的。拿游戏来说,windows平台的竞争者太多,小公司做个游戏卖不出去几份。如果兼容linux和mac,由于竞争对手相对较少,就相对容易卖出去。尤其是linux用户,对于游戏的渴望简直……当然linux和mac用户本身就很少,不过对于小公司来说,还是多少有些补益的。 而且就算不考虑跨平台,java因为有很多开源或者不开源的库可以用(尤其是和网络有关的库),还是挺好用的。当然还有一些人喜欢客户端和服务端使用同样的技术。1.6之后,java做桌面的劣势主要是jre最新版本的普及率过低。对于电信之类的大企业内部,由于jre很容易普及,swing(swt)做桌面还是挺流行的。 要生成exe什么的,应该不是大企业的要求:) 我不是说java不能做桌面应用,而是说不要去研究怎样生成exe,这样的屠龙之技,大家不要学。 要学最有价值的部分,才不会浪费时间,才能让自己有价值。 那这种事总要有人做吧? 用一位大姐的话说:让没有看到这个讨论的人去做吧! 用exe4j,一路“next”,基本几分钟就能生成一个exe,算不得什么屠龙之技吧。 它能不能精简JRE? |
|
返回顶楼 | |