社区
Java SE
帖子详情
exe4j到底能不能把jre打包进exe中?实现在没有jvm的机器上运行呢?
网络科技
2008-07-09 08:02:48
网上找了不少资料,有的说行,但没试过,有的说不行,怎么样怎么样。搞得怪怪的,到底行不行呢?
本人也弄了好久,还是没成功,没把我几十M的jre弄进exe中,我用的是exe4j,4.1版的,没有功能限制的。
当我失望之极时是,我在百度上找到了一篇据说可以把jre打包到exe中去的文章,还写得特别详细,于是我照着该文章又奋斗了近两个小时,
终于还是以失败而告终,哈,自认自己的“模仿”能力也是超一流(就让我吹一下吧),竟然也会失败。唉!到底问题出在哪呢?几乎每种情况我都试过了,还是不行
的。有挑战兴趣的朋友,也去看看吧,网址是:
,到时有什么新的发现,别忘了一起分享的哦。
补充一下吧,我只把jar包和jre打包,因为我本机有装了jvm,所以我只打包jar包在我本机是可以运行的,但在没装jvm的机器就不行了,所以要把jre与jar一起打包,这样我的exe就可以到处运行了。(哈,不希望听到什么这样exe文件太大、不好等之类的回复,最好也别再给我建议用其它的软件如什么gcj等,大点无所谓啦,至于新的工具,太多了,也没什么时间去学的啦,不好意思。)
...全文
11002
46
打赏
收藏
exe4j到底能不能把jre打包进exe中?实现在没有jvm的机器上运行呢?
网上找了不少资料,有的说行,但没试过,有的说不行,怎么样怎么样。搞得怪怪的,到底行不行呢? 本人也弄了好久,还是没成功,没把我几十M的jre弄进exe中,我用的是exe4j,4.1版的,没有功能限制的。 当我失望之极时是,我在百度上找到了一篇据说可以把jre打包到exe中去的文章,还写得特别详细,于是我照着该文章又奋斗了近两个小时, 终于还是以失败而告终,哈,自认自己的“模仿”能力也是超一流(就让我吹一下吧),竟然也会失败。唉!到底问题出在哪呢?几乎每种情况我都试过了,还是不行 的。有挑战兴趣
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
46 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tombow
2012-08-11
打赏
举报
回复
一早就知道了。
fujian26
2012-06-25
打赏
举报
回复
不错,学习一下~~
三 丰
2012-05-12
打赏
举报
回复
2
全是扯淡,楼主问的是不要jre运行,也就是把jre打包进exe文件中,还有人说带着jre运行,带着jre运行还用你说啊,我现在做到的是带着jre运行,进一步用inno setup打包成安装文件,可以把jre打包进去,但是安装之后jar文件会暴漏出来,可以进行反编译,不安全。有一个讲inno setup的老师讲了可以通过exe4j把jre打包进去,但是我没有找到他的教程,很遗憾,希望楼主解决后,给我一份详细的使用教程,就是可以把jre打包进去的教程
wanghui10618
2012-04-16
打赏
举报
回复
可以的,要把你的jar和jre放在一个目录中。
XiLeYY
2012-03-29
打赏
举报
回复
EXE4J可以将Jre打包并生成EXE可执行文件
leiheng250
2012-02-04
打赏
举报
回复
学习学习 啊
StayHungryYY
2012-02-04
打赏
举报
回复
28楼 35楼 正解
IT开发者
2012-01-25
打赏
举报
回复
3年半了,好帖顶!
最近就为这个而烦恼,非常感谢zmwg1,令我茅塞顿开!!!
kbxwn
2012-01-17
打赏
举报
回复
还一直以为jre可以打进exe里面去~~郁闷死了~~~~
多留活口少挖坑
2011-08-03
打赏
举报
回复
不能做成单个exe文件的,exe4j生成的应该是exe文件+jre文件夹,你给它们做成压缩包就可以运行了啊。
风雨漂流
2011-04-08
打赏
举报
回复
[Quote=引用 35 楼 zmwg1 的回复:]
其实我的理解是。EXE4J可以将JAR包做成EXE文件,将你的JRE目录复制到与EXE4J生成的EXE文件同目录下,这样EXE在运行时就可以搜索到JRE。就可以运行了。并不是将JRE打包到EXE中。至于安装文件,可以采取其它程序做,其实只需要用一个WINRAR打包就可以了。
[/Quote]
支持
zmwg1
2011-01-26
打赏
举报
回复
其实我的理解是。EXE4J可以将JAR包做成EXE文件,将你的JRE目录复制到与EXE4J生成的EXE文件同目录下,这样EXE在运行时就可以搜索到JRE。就可以运行了。并不是将JRE打包到EXE中。至于安装文件,可以采取其它程序做,其实只需要用一个WINRAR打包就可以了。
crazyday
2011-01-19
打赏
举报
回复
我也不知
csupanpan
2010-06-28
打赏
举报
回复
完全可以的,我已经成功了,也研究了很久,
在ECLIPS 把类包打成JAR包 然后建立一个文件夹把
打好的JAR包放进去 。之后分别把刚建立的文件夹里
面又建立文件夹 你可以命名JRE LIB ,把你需要的包都
放进去当然是放到相应的文件夹里面。
之后你就可以用EXE4J去打包成EXE文件了,当然EXE4J打包的
过程中它有个设置就是你打包的文件放在哪里,当然你要选择放到
我们刚刚最开始的文件夹立马,也就和JAR包同级目录里面。
用EXE4J打包之后,你再用压缩工具压缩,做成安装包。
daiqibo1984
2010-06-15
打赏
举报
回复
好帖子,刚刚在搞这个东西,受益了!!
铁匠梁老师
2010-06-06
打赏
举报
回复
鼎一个,茅塞顿开
zjc870528
2010-03-30
打赏
举报
回复
exe4j不会包含jre,只是需要带着jre、、、如果需要包含可以用inno setup打包压缩两个文件生成安装程序、、、这样就可以到处安装啦
starnight_cbj
2009-01-21
打赏
举报
回复
楼主,我服了你,呵呵,模防能力超一流!我根据教程成功了啊!不过没有8M起飞,那位大哥有吹水成分!有jrejv
jvm就不用了吗,我认为
网络科技
2008-07-27
打赏
举报
回复
该帖子已发布很久了,最近比较忙,也没什么时间去打理.今天又看了一下,要上网找了些资料,试验了一下,基本上解决了.走了不少弯路,总结一下吧,顺便结帖了,哈,大家都很热情,分,自然都少不了的啦.(注:我的总结也尽供参考,不妥之处还望诸位指正才是)
1、exe4j是不可以将jre直接打包进exe中去的。但exe4j提供了一个搜索jre路径,这个路径可以是系统的环境变量,也可以是注册表,也可以是具体的某路径。
由于要实现在没有jvm的电脑上运行,搜索环境变量与注册表自然是无用功的了,所以只能搜某路径的。把jre的路径,加进去,就行了。但要注意一点:不然用绝对路径哦。我之前就是用绝对路径,导致无效的,而走了弯路的。比如可以用:./jre
2、打成安装包时,要将生成的exe文件与jre一起打包。为了确认打完包,可以用,在没打包之前,点该exe文件,要确认能运行,不然打包要白忙了。
主要就以上两点吧,望后来者别走弯路啦。总之,exe4j是不可能把整个jre打包进exe中去的。后来我要看了篇文章,说install4j行,呵,由于本人英文有点烂,简单的试了一下,还是没完全搞懂。只是知道install4j功能强大,不只帮你打包成exe,还帮你做了安装包呢。后来想想,也没什么意义,安装包我可以用其它的工具弄,这样,杂在一起,乱得很。有空再去研究一下这个软件吧。呵,有点离题了,好了,最后再次感谢各位的捧场。
pzy123cn
2008-07-24
打赏
举报
回复
java的程序 离开了jre你就是怎么打包都不行
加载更多回复(25)
java转
exe
程序
exe
4j
,能够把写的java程序转成
exe
程序,
打包
时能把
jre
也
打包
进
去,方便在
没有
JVM
的
机器
上
运行
。
Java经典入门教程pdf完整版
Java经典入门教程pdf完整版Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 3;Java是一种软件
运行
平台 3.1:什么是软件的
运行
平台 如同我们需要阳光、空气、水和食物才能正常存活一样,软件最终要能够
运行
,也需要 系列旳外部环境,来为软件的
运行
提供支持,而提供这些支持的就是
运行
平台。 3.2:Java是一种
运行
平台 Java本身提供Java软件所需要的
运行
环境,Java应用可
运行
在安装了
JRE
(Java Runtime environment)的
机器
上,所以我们说Java是一个
运行
平台。
JRE
: Java Runtime Environment,Java
运行
环境。 4:Java是一种软件部署环境 4.1:什么是软件的部署 简单地讲,部署就是安装,就是把软件放置到相应的地方,并且
进
行相应的配置(一般 称作部署描述),让软件能够正常
运行
起来。 4.2:Java是一种软件部署环境 ava本身是一个开发的平台,开发后的Java程序也是
运行
在Java平台上的。也就是说, 开发后的Java程序也是部署在Java平台上的,这个尤其在后面学习JEE(Java的企业版) 的时候,体现更为明显 :Java能干什么 JaⅦa能做的事情很多,涉及到编程领域的各个方面。 1:桌面级应用:尤其是需要跨平台的桌面级应用程序。 先解释一下桌面级应用:简单的说就是主要功能都在我们本机上
运行
的程序,比如 word、 excel等
运行
在木机上的应用就属」桌面应用。 2:企业级应用 先解释一下企业级应用:简单的说是大规模的应用,一般使用人数较多,数据量较大, 对系统的稳定性、安全性、可扩展性和可装配性等都有比较高的要求 这是目前Java应用最广泛的一个领域,几乎一枝独秀。包括各种行业应用,企业信息、 化,也包括电子政务等,领域涉及:办公自动化OA,客户关系管理CRM,人力资源HR, 企业资源计划ERP、知识管理KM、供应链管理SCM、企业设备管理系统EAM、产品生命 周期管理PLM、面向服务体系架构SOA、商业智能BⅠ、项日管理PM、营销管理、流程管 理 Work Flow、财务管理…..等几乎所有你能想到的应用 3:嵌入式设备及消费类电子产品 包括无线手持设备、智能卡、通信终端、医疗设备、信息家电(如数字电视、机顶盒 电冰箱)、汽车电子没备等都是近年以来热门的Java应用领域,尤其是手机上的Java应用 程序和Java游戏,更是普及。 4:除了上面提到的,Java还有很多功能:如
进
行数学运算、显示图形界面、
进
行网络操作、
进
行数据库操作、
进
行文件的操作等等。 PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 三:Java有什么 Java体系比较庞杂,功能繁多,这也导致很多人在自学Java的时候总是感觉无法建立 全面的知识体系,无法从整体上把握Java的原因。在这里我们先简单了解一下Java的版本 具体的Java体系知识结构,将在后面详细讲述。 Java分成三种版本,分别是Java标准版(JSE)、Java微缩版JME)和Java企业版(JE), 每一和版本都有自己的功能和应用方向。 1:Java标准版:JSE( Java standard Edition) JSE( Java Standard edition)是sun公司针对桌面开发以及低端商务计算解决方案而开 发的版本,例如:我们平常熟悉的 Application桌面应用程序。这个版本是个基础,它也是 我们半常开发和使用最多的技术,Java的主要的技术将在这个版本
中
体现。本书主要讲的 就是JSF。 2:Java微缩版:JME( Java Micro edition) JE(Java, Micro edition)是对标准版JSE
进
行功能缩减后的版本,于199年6月 由 Sun Microsystems第一次推向Java团体。它是一项能更好满足Java开发人员不同需求 的广泛倡议的一部分。 Sun Microsystems将JM定义为“一种以广泛的消费性产品为目标 的高度优化的Java
运行
时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导 航系统。” JE是致丿于消费产品和嵌入式设备的开发人员的最佳选择。尽管早期人们对它看好而 且Java开发人员团体
中
的热衷人土也不少,然而,J最近才开始从其影响更大的同属 品JEE和JSE的阴影
中
走出其不成熟期。 JME在开发面向內存有限的移动终端(例如寻呼机、移动电话)的应用时,显得尤其实用。 因为它是建立在操作系统之上的,使得应用的丌发无须考虑太多特殊的硬件配置类型或操作 系统。因此,开发商也无须为不同的终端建立特殊的应用,制造商也只需要简单地使它们的 操作平台可以攴持JM便可, 3:Java企业版:JEE( Java enterprise edition) JE( ava Enterprise edition)是·种利用Java平台来简化企业解决方案的开发、部 著和管理相关的复杂问题的体系结构。JE技术的基础就是核心Java平台或Java平台的标 准版,JEE不仅巩固了标淮版屮的诈多优点,例如“编写一次、随处
运行
”的特性、方便存 取数据库的 JDBC API、 CORBA技术以及能够在 Internet应用
中
保护数据的安全模式等等, 同时还提供了对BJB( Enterprise java beans)、 Java Servlets aPi、JSP( Java Server pages) 以及ⅫML技术的全面攴持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时 间的体系结构。 JEE体系结构提供屮间层集成框架来满足无需太多费用而又需要高可用性、高可靠性以 及可扩展性的应用的需求。通过提供统的开发平台,J降低了开发多层应用的费用和复 杂性,同时提供对现有应用稈序集成强有力支持,完全支持 Entcrprise java beans,有良 好的向导攴持
打包
和部署应用,添加了目录攴持,增强了安全机制,提高了性能 JE是对标准版
进
行功能扩展,提供一系列功能,用来解决
进
行企业应用开发
中
所面临 的复杂的问题。具体的我们会放到后面JFE的课程去讲。 4:三个版本之间的关系 JE几乎完全包含JSE的功能,然后在JSE的基础上添加了很多新的功能。 JME主要是JSE的功能子集,然后冉加上一部分额外添加的功能 PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 如下图所示 JEE JSC JME Java的API类库之
中
有一组所谓的核心类( Corellas,即java.*),在核心类之外还有 所谓的扩允类( xtended Class,即 Javax.*)。根据对这两种类的支持程度,
进
而区分出几 种不同的Java版本。 我们必须以 Java Standard Edition(JSE)作为基准,这个版本做了所有Java标准规格 之
中
所定义的核心类,也文持所有的Java基木类。JSE定位在客户端程序的应用上 从JSE往外延伸,其外面为 Java Entcrprise edition(JEE),此版本除了支持所有的 标准核心类外,而且还增加了许多文持全业内部使用的扩充类,攴持 Servlet/JSP的 Javax. servlet.*类、支持 Enterprise Java Bean的 javax.ejb.*类。当然,JE必定支 持所有的Java基本类。JE定位在服务器端( server-side)程序的应用上。 从J5E向内看,是 Java micro edition(JME),它所支持的只有核心类的了集合,在JME CLDC的规格之
中
,只支持java.lang.*、java.io.*、以及java.uti1.*这些类。此版本 也增加了一些攴持“微小装置”的扩充类,如 Javax. microedition.io.*类。然而,此版 木并不支持所有的Java基木类,就标准的 JMECLDO,也就是能在 Palmos上执行的 KwM( KVirtualmachine)来说,它就不支持属于浮点数( float、 double)的Java基本类。JME 定位在嵌入式系统的应用上 最里层,还有一个Java的 Smart card版本,原本在Java的文件之
中
并
没有
这样定义 但是将亡画在JⅦ内部是很合理的。因为 SmartCard版本具攴持java.lang*这个核心类, 比起JM所支持的核心类更少,但它也有属」自凵的扩充类,如 Javacard.*、 javacard. 这些类 Smartcard版本只支持 Boolean与Bytc这两种Java基本类,此版本定位在 SmartCard 的应用上 四:闲话 ava 1:Java历史 在上世纪90年代初,sun公司有一个叫做 Green的项目,目的是为家用消费电子广品 开发一个分布式代码系统,这样就可以对家用电器
进
行控制,和它们
进
行信息交流。詹姆 斯·高斯林( James Gosling)等人基于C+开发一种新的语言0 ak ( java的前身)。0ak是 种用于网络的精巧而安全的语言。Sun公司曾依此投标个交互式电视项目,但结果是被SGl 打败,Sun打算抛弃0ak。随着可联网的发展,Sun看到了0ak在计算机网络上的广阔应用 前景,于是改造0ak,在1995年5月以“Java”的名称正式发布,从此Java走上繁荣之路 当然提到Jaa历史,不得不提的一个故事就是Java的命名。开始“Oak”的命名是以 项目小组办公室外的树而得名,但是Oak商标被其他公司注册了,必须另外取一个名字 传说有天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们止在 咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎杵,得到了其他人的赞同, 于是,Java这个名字就这样传开了。当然对于传说,了解一下就好了,不必过于认真 2:Java大事记 PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 作为学习Java的人士,对Java历史上发生的大事件有一个了解是应该的。 JDK〔 Java Software Develop kit):Java软件开发工具包。JIK是Java的核心,包 括了Java
运行
坏境,一系刎Java开发工具和Java基础的类库。目前主流的JDK是Sun公 同发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JD,例如IBM公司开 发的JD,BA公司的 Jrocket,还有GN组织丌发的JDK等等。 时间 事件 1995年5月23日 Java语言诞生 1996年1月 第个 JDK-JDK1.0诞生 1997年2月18日 JDK1.1发布 1998年12月8日 Java2企业平台J2EE发布 1999年6月 Sun发布JaⅤa三个版本:标准版J2SF,企业 版J2EE,微型版JME 2004年9月30日 Javase50发布 2006年12月 Java se60发布 3:Java特点 简单地说,Java具有如下特点:简单的、面向对象、平台无关、多线程、分布式、安全、 晑性能、可靠的、解释型、自动垃圾回收等特点。 这里只解释一下平台无关和分布式,其余的在后面会逐步接触到 3:平台无关 所谓平台无关指的是:用Java写的程序不用修改就可在不同的软硬件平台上
运行
。这 烊就能
实现
同样的程序既可以在 Windows下
运行
,到了Unix或者 Linux环境不用修改就直 接可以
运行
了。Java主要靠Java虚拟机(JⅧM)
实现
平台无关性 平台无关性就是一次编写,到处
运行
: Write Once, Run Anywhere 32:分布式 分布式指的是:软件由很多个可以独立执行的模块组成,这些模块被分布在多台计算机 上,可以同时
运行
,对外看起来还是个整体。也就是说,分布式能够把多台计算机集合起 来就像一台计算机一样,从而提供更好的性能 4:Java标准组织—Cp JCP( Java Community process)是一个开放的国际组织,成立于1995年,主要职能 是发展和更新Java技术规范、参考
实现
(RⅠ)、技术兼容包(TCK)。Java技术和JCP两者 的原创者都是SN计算机公司。组织成员可以提交JSR( Java Specification Requests), 通过讨论、认可、审核以后,将
进
入到下一版本的规范里面。 也就是说JCP是目前Java技术发展事实上的控制者和领导者。 五:Java如何做到让
机器
理解我们想要做的东西 用·个图来描述这个过程会比较谷易理解: PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 Runtime Compile Class loader Byte code Verifier Javac Hello.java Netwo Hello class Interpreter code Runtime generator/ Hardware 1:编写代码 首先把我们想要计算机做的事情,通过Java表达出来,写成Java文件,这个过程就是 编写代码的过程。如上图所示的 Hello java文件。 2:编译 写完Jaa代码后,
机器
并不认识我们写的Java代码,需要
进
行编译成为字节码,编译 后的文件叫做clas文件。如上图所示的 Hello, class文件。 3:类装载 Classloader 类裝载的功能是为执行程序寻找和装载所需要的类 Classloader能够加强代似的安全性,主要方式是:把本机上的类和內络资源类相分离, 在调入类的时候
进
行检查,因而可以限制任何“特洛伊木马”的应用。 4:字节码(byte-code)校验 功能是对 class文件的代码
进
行校验,保证代码的安全。 Java软件代码在实际
运行
之前要经过几次测试。JWM将代码输入一个字节码校验器以 测试代码段格式并
进
行规则检査一一检査伪造指针、违反对象访问权限或试图改变对象类型 的非法代码。 注意-—所有源于网络的类文件都要经过字节码校验器 字节码校验器对程序代码
进
冇四遍校验,这可以保证代码符合JⅧM规范并∏不破坏系统 的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证 类符合JWⅦM规范的类文件格式 无访问限制异常 代码木引起操作数栈上溢或下溢 所有操作代码的参数类型将总是正确的 无非法数据转换发生,如将整数转换为对象引用 对象域访问是合法的 5:解释( Interpreter) 可是
机器
也
不能
认识clas文件,还需要被解释器
进
行解释,
机器
才能最终理解我们所 要表达的东西 PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 6:
运行
最后由
运行
环境屮的 Runtime对代码
进
行
运行
,真正
实现
我们想要
机器
完成的工作 7:说明 由上面的讲述,大家看到,Java通过个编译阶段和个
运行
阶段,来让
机器
最终坦解 我们想要它完成的工作,并按照我们的要求
进
行
运行
在这两个阶段屮,需要我们去完成的就是编译阶段的工作,也就是说:我们需要把我们 想要札器完成的工作用Jaa语言表达出来,写成Java源文件,然后把源文件
进
行编译,形 成 class文件,最后就可以在JaⅦa
运行
环境
中
运行
了。
运行
阶段的工作由Java平台自身提供 我们不需要做什么上作。 六:Java技术三大特性 1:虚拟机 Java虚拟机JM( Java Virtual Machine)在Java编程里面具有非常重要的地位,约 相当于前面学到的Java
运行
环境,虚拟机的基本功能如下: (1):通过 Classloader寻找和装载 class文件 (2):解释字节码成为指令并执行,提供 class文件的
运行
环境 (3):
进
行
运行
期间垃圾回收 4):提供与硬件交互的平台 Java虚拟杋是在真实札器
中
用软件模拟
实现
的—种想象
机器
。Jaa虚拟札代码被存储 在.clas文件
中
;每个文件都包含最多一个 public类。Java虚拟机规范为不同的硬件平台 提供了·种编译Java技术代码的规氾,该规范使Java软件独立于平台,因为编译是针对作 为虚拟机的“一般
机器
”而做。这个“一般
机器
”可用软件模拟并
运行
于各种现存的计算机 系统,也可用硬件米
实现
ε编译器在获取Java应用程序的源代码后,将其生成字节码,它是 为J硎M生成的一种
机器
码指令。每个Java解释器,不管它是Java技术廾发工具,还是可
运行
applets的Wcb浏览器,都可执行
JVM
。 JWM为下列各项做出了定义 指令集(相当于
中
央处理器[CP]) 寄存器 类文件格式 栈 垃圾收集堆 存储区 JⅧM的代码格式由紧缩冇效的字节码构成。由J硎M字节码编写的程序必须保持适当的类 型约東。大部分类型检査是在编译时完成。任何从属的Java技术解释器必须能够
运行
仼何 含有类文件的程序,这些类文件应符合Java虚拟机规范
中
所指定的类文件格式 1.1:虚拟机是Java平合无关的保障 正是因为有虚拟机这个
中
间层,Java才能够
实现
与平台无关。虚拟机就好比是一个Java
运行
的基本平台,所有的Java程序都
运行
在虚拟机上,如下图所示: PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 Java源程序(*java文件) Javac编译 ava类文件(*cass文什) 平台无 被装载
进
入虚拟机 Java虚拟机 平台相关 解释执行字节码文件 Linux Windows 2:垃圾回收 2.1:什么是垃圾 在程序
运行
的过程
中
,存在被分配了的内存块不再被需要的情况,那么这些内存块对程 序来讲就是垃圾。 产生了垃圾,自然就需要清理这些垃圾,更为重要的是需要把这些垃圾所占用的内存资 源,回收回来,加以再利用,从而节省资源,提高系统性能。 2.2:垃圾回收 不再需要的凵分配内存应取消分配(释放内存) 在其它语言
中
,取消分配是程序员的责仟 Java编程语言提供了种系统级线程以跟踪内存分配 垃圾攻集 可检查和释放不再需要的内存 可自动完成上述工作 可在JM
实现
周期
中
,产生意想不到的变化 许多编程语言都允许在程序
运行
时动态分配内存,分配内存的过程由于语言句法不同而 有所变化,但总是要将指针返回到内存的起始位置,当分配内存不再需要时(內存指针已溢 出范围),程序或
运行
环境应释放内存 在C,C艹+或其它语言
中
,程序员负责释放内存。有吋,这是件很困难的事情。因为 你并不总是事先知道内存应在何时被释放。当在系统
中
没有
能够被分配的内有时,可导致程 序瘫痪,这种程序被称作具有内存漏洞 java编程语言解除∫程序员释放内存的贲仼。它可提供一种系统级线程以跟踪每一次 内存的分配情況。在Java虚拟机的空闲周期,垃圾收集线程检查并释敚那些可被释放的内 存。垃圾收集在Java技术程序的生命周期
中
自动
进
行,它解除了释放内存的要求,这样能 够有效避免内存漏洞和内存泄露(内冇泄露就是程序
运行
期间,所占用的内存一直往上涨, 很容易造成系统资源耗尽而降低性能或崩溃) PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 2.3:提示 (1):在Java里面,垃圾回收是一个自动的系统行为,程序员
不能
控制垃圾回收的功 能和行为。比如垃圾回收什么时候开始,什么时侯结束,还有
到底
哪些资源需要回收等,都 是程序员
不能
控制的 (2):有些跟垃圾回收相关的方法,比如: System. gc(,记住“点,调用这些方法, 仅仅是在通知垃圾回收程序,全于垃圾回收程序运个
运行
,仆么时候
运行
,都是尢法控制的。 (3):程序员可以通过设置对象为nul(后面会讲到)来标示某个对象不再被需要了, 这只是表示这个对象可以被回收了,并不是马上被回收 3:代码安全 Java如何保证编写的代仍是安全可靠的呢? (1):第一关:编写的代码首先要被编译成为 class文件,如果代码写得有问题,编译期间 就会发现,然后提示有编译错误,无法编译通过。 (2):第二关:通过编译关后,在类装载的时候,还会
进
行类装载检查,把本机上的类和网 络资源类相分离,在调入类的时候
进
行检査,因而可以限制仁何“特洛伊木马”的应用 (3):第三关:类装载后,在
运行
前,还会
进
行字节校验,以判断你的程序是安全的。 (4):第四关:如果你的程序在网终上
运行
,还有沙箱( Sand box)的保护,什么是沙箱呢? 就是如果你的程序
没有
汏得授权,只能在沙箱限定的范围内
运行
,是
不能
够访问本地資源的, 从而保证安全性。 如下图所示: Runtime Compile Java class Loader匿载检查 Hello world. java Network Byte code verifier 节码校验 Javac 编译检耷 Hello World class Interpreter Runtime Hardware 学习到这甲,大家应该对Java有了一定的了解了。现在是否想要看看Java程序究竟什 么样子呢?是不是想要体会一下如何开发Java程序呢?下面我们先米看看如何构建JSE的 环境,这是
进
行Java程序开发的第一步, PDF文件使用" pdfFactory Pro"试用版本创建ww, fineprint,cn
深入理解
JVM
虚拟机
内容简介:
JVM
是Java Virtual Machine(Java虚拟机)的缩写,引入Java语言虚拟机后,Java语言在不同平台上
运行
时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言只需生成在Java虚拟机上
运行
的目标代码,就可以在多种平台上不加修改地
运行
。本课程将介绍
JVM
的核心原理,包括类加载机制的设计原理,
JVM
常用的参数类型,对堆内存
中
的Eden,S0,S1和Old区的理解,如何确定一个对象为垃圾?常用的垃圾回收算法和垃圾收集器,以及它们适用的区域和特点等等,都会有详细介绍。 为什么需要学习这门课程? 作为一名JAVA开发工程师,你在使用虚拟机的时候可能会出来一些意料不到的Bug,而你却不知道如何去解决。这是因为Java虚拟机封装得很好,让你感觉不到它的存在。掌握Java虚拟机的工作原理可以提高你的开发效率,修复Bug会变得非常轻松。而且,对于JAVA工程师来说,在你通往
进
阶的道路上,
JVM
是必须要吃透的。 课程大纲: 为了让大家快速系统了解
JVM
知识全貌,我为您总结了思维导图,帮您梳理学习重点,建议收藏!
关于将java程序导成.
exe
,在
没有
装
jvm
的
机器
上
运行
本人想将一个java小程序
打包
成.
exe
的形式,并让它能在
没有
装
jvm
的
机器
上
运行
。在网上查了好多资料总算成功了,感谢网络,阿门!!!现将方法贴出来。 一、首先下一个
exe
4j
。它是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具。 它的安装和使用可参考:http://hi.baidu.com/jsoftware/blog/item/c483
exe
4j
_java_home指向jdk安装32位或
jre
_The
JVM
found at JAVA_HOME is damaged.Please reinstall or define
EXE
4J
...
一、介绍
exe
4j
是一个很棒的工具,可以把jar包
打包
成
exe
进
行
运行
。他可以把
jre
环境和
打包
的
exe
进
行集成,使得
打包
后的
exe
应用程序可以在
没有
安装java的
机器
上
运行
(前提是要把
exe
和
jre
一起捆绑)。二、问题及解决方法使用
exe
4j
集成
jre
打包
exe
时,
运行
exe
应用程序时,发现报错信息:错误提示:JAVA虚拟机发现JAVA_HOME损坏,需要重装或者定义
EXE
4J
的JAVA_HOM...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章