您的位置:程序门 -> java -> j2se / 基础类



可否把一个.java文件编译成exe,并且能完全脱离jvm执行,也就是这个exe可以放到没有jre的机器上执行?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


可否把一个.java文件编译成exe,并且能完全脱离jvm执行,也就是这个exe可以放到没有jre的机器上执行?[已结贴,结贴人:atgc]
发表于:2007-03-28 14:09:27 楼主
可否把一个.java文件编译成exe,并且能完全脱离jvm执行,也就是这个exe可以放到没有jre的机器上执行?
发表于:2007-03-28 14:19:281楼 得分:0
..异想天开
发表于:2007-03-28 14:20:272楼 得分:0
这是个问题

用java写出的程序能否像c#,c++写出的那样,有个exe文件。那样运行就更方便了。

我也来顶一下
发表于:2007-03-28 14:22:513楼 得分:0
不会的.
发表于:2007-03-28 14:56:034楼 得分:0
jbuilder可以吧?
发表于:2007-03-28 15:01:065楼 得分:0
都需要jvm即使打包成exe,如eclipse富客户端产品也要jvm支持,可以把jvm一起打包。
发表于:2007-03-28 15:02:036楼 得分:13
>   可否把一个.java文件编译成exe,并且能完全脱离jvm执行,
>   也就是这个exe可以放到没有jre的机器上执行?

这个要看你怎么理解。

首先说,把   java   程序搞成一个   exe,到一个“没有预装   jre”的机器上就能直接运行,这个是完全可以做到的。

但是,真正意义上的“完全脱离jvm”是不可能的,上面说的做法也不过是在   exe   中以某种形式带了个   jvm   而已。
发表于:2007-03-28 15:07:117楼 得分:0
建议考虑使用c#编程.
发表于:2007-03-28 15:14:588楼 得分:0
"首先说,把   java   程序搞成一个   exe,到一个“没有预装   jre”的机器上就能直接运行,这个是完全可以做到的 "
===================================
只要这样就可以了,怎么打包呢?
谢谢
发表于:2007-03-28 15:18:259楼 得分:0
不可能
发表于:2007-03-28 15:19:4610楼 得分:5
如果你能接受用   bat   的方法,可以做这样一个   bat   文件:

set   java_home= "%cd%\jre "
"%cd%\jre\bin\java.exe "   -classpath   ...........

如果你一定要做成   .exe,那考虑用   jbuilder   或者什么的打包工具吧。
发表于:2007-03-28 15:46:2311楼 得分:5
可以用nativej打包成exe
jre是必须的
一些大公司的产品,往往会把jre捆绑在安装包中。
发表于:2007-03-28 15:46:3412楼 得分:0
不管用什么工具,只要能打包称exe即可,即可以在“没有预装   jre”的机器上就能直接运行即可
发表于:2007-03-28 15:48:1413楼 得分:0
这java把自己说得那么好,连这点都最不到,真是郁闷啊
delphi   vb,vc都可以的啊
发表于:2007-03-28 15:50:5014楼 得分:0
用installanywhere打包,可以将jre打包到exe中。。。。
发表于:2007-03-28 16:06:3815楼 得分:0
jbuilder可以吗?
发表于:2007-03-28 16:09:3616楼 得分:0
用installanywhere吧,它可以把jre一起打包。安装的时候自动为你安装jre。java是不可能脱离jre运行的。
发表于:2007-03-28 16:21:5817楼 得分:0
..................................只能是把jre一起打包!
发表于:2007-03-28 16:25:4618楼 得分:2
jbuilder可以吗?
===============================
jbuilder貌似可以只是因为下面自带了jdk1.4
那里面就有你熟悉的jre了。。
发表于:2007-03-28 16:29:0419楼 得分:0
可以,   把jre打入包内,   用installanywhere就可以
发表于:2007-03-28 16:36:0520楼 得分:0
lz您太有才了
lz您觉得delphi   vb,vc这些好,干吗用java写代码呀?vc   vb换个平台能用吗?
打包成exe可以   运行   好象需要jre
发表于:2007-03-28 16:57:1321楼 得分:0
顶一个,学习中!
发表于:2007-03-28 19:59:0222楼 得分:0
我年轻的时候也有这个想法   --
发表于:2007-03-28 20:14:3423楼 得分:0
c#你个头

你用c#写的程序还不是要.net   framework

xp都没有预装...

而且用c#就意味着你愿意限制在windows平台下
发表于:2007-03-28 20:47:1624楼 得分:0
除非你用c++重写代码
发表于:2007-03-28 20:56:2625楼 得分:0
弱弱地问一句
c#只能用在windows平台下吗?
发表于:2007-03-28 21:43:4226楼 得分:0
-_- ¦ ¦........


可怜的,,,拼死拼活终于弄了个跨平台的东东出来..楼主愣是要绑死为.exe````


还想抛弃生死与共的jvm...太不厚道了````````````


把jre也压进去就行了..................
发表于:2007-03-28 21:49:2227楼 得分:0
不要说得c#好像很了不起似的,运行也需要.net的framework,对于干净的xp系统来说也是得需要安装的
发表于:2007-03-28 21:53:4628楼 得分:0
有个小工具可以做到
发表于:2007-03-28 21:54:0229楼 得分:0
j2efree
发表于:2007-03-28 22:26:4530楼 得分:0

http://blog.csdn.net/qxbnit/archive/2007/03/22/1537901.aspx

请看我的blog~,里面有介绍~~
发表于:2007-03-28 22:30:4431楼 得分:0
转成纯exe文件也是可以做到的,,方法就是自己实现把.class字节码转成x86汇编.
其他的一般要么就是封装.bat方式,,要么就是在jar之外套个exe(如楼上说的j2e),这些都需要jre支持.
发表于:2007-03-29 10:26:5832楼 得分:0
楼主认为.exe就可以跨平台了??
估计楼主就知道dos和windows这俩操作系统。
请问楼主,linux下的可执行文件的扩展名是什么?
发表于:2007-03-29 10:43:4733楼 得分:0
我知道楼主的意思,你是说要转换成像exe那样的东西而不是真正的exe,可以脱离jre,但是不能脱离java虚拟机吧?
发表于:2007-03-29 11:57:0134楼 得分:0
没可能.
发表于:2007-03-29 12:23:2235楼 得分:0
这java把自己说得那么好,连这点都最不到,真是郁闷啊
delphi   vb,vc都可以的啊

==================
vb也是需要runtime的
发表于:2007-03-29 13:06:1736楼 得分:0
用c#也得把.net   framework打包进去
发表于:2007-03-29 13:23:1937楼 得分:0
理论上是不可以的,但是你表面上看到的可以也是把所有的类包什么的都打到工程里来实现的
发表于:2007-03-29 21:59:0638楼 得分:0
把jvm和它一起打包呵呵~
发表于:2007-03-29 22:02:5539楼 得分:0
atgc
     
这java把自己说得那么好,连这点都最不到,真是郁闷啊
delphi   vb,vc都可以的啊

--------------------------------------------------------
java     跨平台,你说的那些好像不可以吧


   
 
发表于:2007-03-29 22:03:3340楼 得分:0
可以做成exe,但必须带jre
发表于:2007-03-29 22:06:1041楼 得分:0
lz去玩c吧   ,java永远离不开jvm
发表于:2007-03-30 12:34:2342楼 得分:0
那要不做成.bat文件!^_^,和exe效果差不多啊!
发表于:2007-03-31 01:18:5443楼 得分:5
我以前用   installanywhere   把   java   程序打成一个单一的   .exe   文件,但是在打包过程中其实已经将jre包含进去了。具体你下一个installanywhere,   试试打包一个程序就明白了。所以说看起来好像可以不需要jre而直接运行,可是实际上还是没有脱离java   virtual   machine.
发表于:2007-03-31 13:45:3644楼 得分:0
"lz您太有才了
lz您觉得delphi   vb,vc这些好,干吗用java写代码呀?vc   vb换个平台能用吗?
打包成exe可以   运行   好象需要jre "
=======================================
小的愚沌,问的问题比较幼稚,让您见笑了
发表于:2007-03-31 13:46:5545楼 得分:0
“-_- ¦ ¦........


可怜的,,,拼死拼活终于弄了个跨平台的东东出来..楼主愣是要绑死为.exe````


还想抛弃生死与共的jvm...太不厚道了````````````


把jre也压进去就行了..................”
============================
只是想讨教一下,这和厚道不厚道有什么关系???
发表于:2007-03-31 13:49:1046楼 得分:0
“java     跨平台,你说的那些好像不可以吧”
====================
是的,不过任何东西都是相对的,java的跨平台,也是要依赖不同os的jvm的

跨平台也不是java独有的技术
perl的跨平台也做得很好,在win上的代码,一般可以直接到unix执行
发表于:2007-03-31 13:55:2147楼 得分:0
不可行!
什么是exe?你没有搞清楚吧。

你说的可执行文件,那相当于系统加载了一些库来执行这个exe。
就像java的class文件需要在系统(jvm)中运行一样。
发表于:2007-03-31 16:19:2448楼 得分:0
我知道有一个工具叫exe4j可以实现你说的功能,感兴趣的话可以搜索以下   :)
发表于:2007-03-31 16:45:5649楼 得分:0
唯一的方法,使用gcj编译,但比较麻烦。
发表于:2007-03-31 17:05:3550楼 得分:0
atgc(花开蝶舞,木秀鸟栖)
------------------------------------------
perl   和   java   比,你真幽默,一个是解释型语言,一个叫纯脚本,一个静态语言、一个是动态。风牛马不相依。我把你和某种动物相比,你恐怕也不原意吧
发表于:2007-03-31 18:48:4551楼 得分:0
"楼主认为.exe就可以跨平台了??
估计楼主就知道dos和windows这俩操作系统。
请问楼主,linux下的可执行文件的扩展名是什么? "
=================================================
我什么时候说过exe可以跨平台了?
就知道dos和window又怎么了?有过错吗?
您知道linux?unix?又怎么了呢?linux是您写的吗?

linux下的可执行文件需要扩展名吗?您这话问的?

我想这里是大家讨论问题的地方,别人不知道的来这里讨教,不是来听你训话的
您就算是才高8斗,可在帮组别人的时候,也没必要那么居高临下吧。。
您没有必要这么教训人吧?俺问问题,您可以不回答。。您并没有义务回答
可是你既然要回答,希望您尊重别人,这样才会赢得别人对你的尊重!!!


发表于:2007-03-31 18:51:1552楼 得分:0
“perl   和   java   比,你真幽默,一个是解释型语言,一个叫纯脚本,一个静态语言、一个是动态。风牛马不相依。我把你和某种动物相比,你恐怕也不原意吧

============================================================
希望你讲话文明一点!!!
我说跨平台,这和解释型,动态,静态有什么关系吗?

btw:   难道您就不是动物?
发表于:2007-03-31 18:53:1053楼 得分:0
to   joyous

希望您讲话文明一点!!
这里是讨论技术的地方,就算别人不懂,您也没有必要侮辱,调侃吧?
请您自重!!
发表于:2007-03-31 19:19:2454楼 得分:0
正好笑脱离的jvm的java程序,还是java程序吗?
发表于:2007-03-31 19:22:4155楼 得分:0
to   k1347()  
=============
让您见笑了,你是大侠,咱是菜鸟
发表于:2007-03-31 22:23:3256楼 得分:0
vb\vc\c#编出来的程序也不是打成exe的就能用了呀,也得靠framework呀!~只不过大家用windows系统的多。装的时候连带framework敢装进去了呀。你如果把。net编的程序放到linux里,好像也不能运行吧!~
发表于:2007-03-31 22:26:0257楼 得分:0
回复人:k1347()   (   )   信誉:100 2007-3-31   19:19:25 得分:0


?
正好笑脱离的jvm的java程序,还是java程序吗?

----------------------
说得好,所以我很早就建议楼主“建议考虑使用c#编程.”
发表于:2007-03-31 22:33:5758楼 得分:0
呵呵
发表于:2007-04-01 23:33:0759楼 得分:0
第一次见过这么谦虚求教的。
发表于:2007-04-01 23:40:5860楼 得分:0
属于那种平时被人欺负惯的,人家说句话稍微不小心就会被认为不尊重的,过于敏感了吧?

我只是想矫正楼主大人的观点而已。如果你有什么不爽,当我没说。

你愿意搞个迷你型windows可以跑在unxi上,估计exe文件也可以跨unix平台了。

另外,java是解释型语言,不能“编译”。
发表于:2007-04-02 01:33:0561楼 得分:0
不可能  
没用   jvm   java程序就不可能运行
jbuilder   可以把java程序   打成   exe   但那也只是形象神不像
后台运行还是离不开虚拟机
发表于:2007-04-02 08:52:3562楼 得分:0
to   qq7338367(深秋小雨:承受所有的悲喜   继续存在的意义

照您的观点,被人欺负的人反而有错了,而欺负人的人倒是有道理了。。
我只是说,您既然要回答别人的问题,也要好好说,要么就别回答。
要知道,您也不是天生就会java的,这世界上您不知道的东西多了。
发表于:2007-04-02 09:04:2363楼 得分:0
只是您不知道的东西太不应该了
发表于:2007-04-02 09:05:2564楼 得分:0
哈哈,你还真当自己被欺负了,那我没话说。
发表于:2007-04-02 09:08:1665楼 得分:0
我觉得有些问题是需要更正一下观念的~!
delphi   vb,vc系列的不是不需要虚拟机,是微软已经把虚拟机集成到windows系统内了.
同时那些说什么delphi   vb,vc不用的需要想一下,跨平台最基本的东西是什么~!
发表于:2007-04-02 09:15:4466楼 得分:0
想了想,回来检讨一下。

想想平时那些前辈是怎么热心帮助我的,呵呵,好像我这样的态度是不应该了。

道个歉,我错了。

不过真的我说那些话的时候没有恶意的。算,不解释了。

真受不了的话,对不起了。
发表于:2007-04-02 09:56:0367楼 得分:0
lz的意思是不是想做win32程序的开发?用delphi就很好,面向对象的
发表于:2007-04-02 11:24:2468楼 得分:0
to   insiku(tmd   越学越弱   不懂的太多了

"只是您不知道的东西太不应该了 "
===============================
不知道一门技术,不知道一些知识,这有什么不应该的吗?
试问您是否知道所有编程语言啊?
您是否知道所有计算机相关的知识啊?
难道搞计算的,不知道java的基本只是,就是不应该了?
您一生下来就会java了?
发表于:2007-04-02 11:33:2769楼 得分:0
楼猪装b了:

1.你问问题还不允许人家回答?
2.你答复人家还不是语言偏激?有什么资格说别人答你问题偏激?
3.不懂不是你的错,出来乱搞就是你的不对了!java就是java吧,你偏要把它变成c++,你以为是谁啊,几斤几两自己拈量。
4.答复一些无关的问题这么勤快,你学习这么勤快早就放弃把java打包成exe的想法了。
5.java的jar格式与windows的exe格式只是后辍名不一样罢了。
6......
.....
n.后面的人你说我说不说得对啊?!

那就顶吧!
发表于:2007-04-02 11:50:3170楼 得分:0
不可以的!!
发表于:2007-04-02 11:58:0371楼 得分:0
to   inthistime(共此时)

鄙视你的为人!!鄙视你的污言秽语!!

回答问题也要言语文明,我提问题自然是要别人回答,可不是来受辱的!
请您自重!
什么几斤几两?我乱搞什么了,我会向管理员投投诉你的!
发表于:2007-04-02 12:11:1272楼 得分:0
atgc(花开蝶舞,木秀鸟栖)   (   )   信誉:100         blog     2007-04-02   11:24:24     得分:   0    
 
 
      to   insiku(tmd   越学越弱   不懂的太多了

"只是您不知道的东西太不应该了 "
===============================
不知道一门技术,不知道一些知识,这有什么不应该的吗?
试问您是否知道所有编程语言啊?
您是否知道所有计算机相关的知识啊?
难道搞计算的,不知道java的基本只是,就是不应该了?
您一生下来就会java了?

===============================================================

不要给自己找理由   那所有人都不是一生来就会的   那最初的那些先驱者是谁教他们   谁给他们指点??
难道是sun公司的开发人员?恐怕中国没有几个人有这种荣幸能有机会结识这些人
可幸的是   这世界上还有一种东西叫自学,   有书   有资料   还识字就可以了
我承认我不懂的东西很多   不懂并不可怕   我识字   我会学   不懂的东西就会搞懂
不知道您这位歪理邪说一堆的人遇到问题了有没有去看书   或者您看过多少书  
再或者书上没有提及这种问题   那是世界上还有个google   那么论坛里也有搜索     也有高人曾经记录下来的好东西   不知道您在提问前查阅了多少

如果没有
我觉得您这种人乘早滚出csdn,csdn的风气就是被你这种不学无术的傻蛋搞坏的.
发表于:2007-04-02 12:13:1473楼 得分:0
任何东西   平民化以后就会变的一般  
这就是为什么csdn上的高手越来越少了
天天看到这种sb帖子   烦都烦死了
发表于:2007-04-02 12:40:2274楼 得分:0
to   insiku(tmd   越学越弱   不懂的太多了)
照您的理论,这个论坛就不用开了,都可以看书获得,如果来这里提问,就是不学无术,不学习
您是那么的好学,那么勤奋,于是到这里来教训人了
到这里来提问的人,不是来受你调侃和屈辱的
你说什么,“滚”,没有教养!!!!!!
我看你缺教养,你才歪理邪说一堆!!!!
你就那么有学有术?
我告诉你,请你自重!!!!!
我不会再来这各java论坛,我自己在oracle论坛回答问题,从未这样对待过提问的人
要说这里的风气,您才是败坏这里学习氛围的人!!
自以为是的家伙!!!
发表于:2007-04-02 12:46:2675楼 得分:0
微软故意不在系统中放jvm,   所以才没法运行.   现在的java开源了,   linux的发行版本都可以带jvm了.
微软的错,而不是java的错
发表于:2007-04-02 12:47:1776楼 得分:0
to   insiku(tmd   越学越弱   不懂的太多了)

我对你的这种侮辱人的行径非常气愤!
你不觉得在这里骂人,就是在骂你自己吗?

有不少回答问题的人,总是用教训的口吻教训提问的人
别人来这里提问,并不是不好学,
当你接触一个新的只知识点的时候,会遇到很多问题,看书,到论坛问都是方法
如果你不愿意回答,也没有人勉强你,你有什么资格来教训我,侮辱我?

发表于:2007-04-02 12:59:1177楼 得分:0
经调查表明:insiku太2了。
                      偶尔激动一下,这是年轻人的正常表现。
                      但千万不要因为你会一点东西,别人不会,你就牛得不行以至于要用侮辱性词语

                     
发表于:2007-04-02 13:08:0478楼 得分:0
有时候遇到了弱智问题,回复人怒气冲冲也常有。

这没办法,在单位当领导当惯了,喜欢大呼小叫的。


楼主也稍安勿躁,这种事情要当成笑料来对待。

若干年后,你成长起来了,教育晚辈的时候也可以拿来当案例:一定要学好知识,不然上论坛提问会被人骂的。
发表于:2007-04-02 23:26:1179楼 得分:0


无语………………………………


这个问题说了好多遍,坛子上都起霉了。

唉   可怜的csdn   啊
发表于:2007-04-14 12:29:3280楼 得分:0
up
发表于:2007-04-14 15:50:4781楼 得分:0
没jvm怎么运行。。。我汗!
发表于:2007-04-15 13:16:2582楼 得分:0
楼主已经不在了。
发表于:2007-04-19 17:18:4683楼 得分:0
如题,这个时候大家怎么不讨论一下jvm的跨平台性~
生活就像被xx,真的感觉我们都被骗了~与其这里费劲的jvm,还是什么java   ->   exe,为什么不制定一个可执行程序的标准,就好比ip?为啥?
盖茨明白技术标准化潜在的超巨大利益,所以~
他们争啊争啊,谁也不让谁,所以,我们写的exe不能跨平台,你们写的class也自己逗自己玩的跨着 "平台 ",有瘾啊?跨了半天我们还是在windows,你们还是在jvm~
诶,生活就像被xx,真的感觉我们都被骗了~


快速检索

最新资讯
热门点击