怎样才能让JAVA程序变成在windows不需要JRE也能运行的程序?

dddeee 2005-04-08 07:46:06
有没有什么工具可以做到?不然JAVA写的桌面程序在别的windows上运行还要让别人将一个jre,太麻烦了
...全文
874 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifan5748 2005-04-12
  • 打赏
  • 举报
回复
Sun公司应该去和Microsoft沟通一下,让Microsoft在windows中捆绑jre。
chenchen2003 2005-04-11
  • 打赏
  • 举报
回复
你可以使用jbuilder,它可以把你的java文件生成。EXE文件。
abcdhy 2005-04-11
  • 打赏
  • 举报
回复
可以使用 JET 或 JCG 编译为本地代码就可以了, 不过编译出来很大的,

据说一个 hello world 就有大约 2M.
Latnok Han 2005-04-11
  • 打赏
  • 举报
回复
如果你是一个JAVA的程序员,就要懂得JRE和JAVA程序的关系,不理解的地方你可以到SUN公司解答。
xiaodajin 2005-04-11
  • 打赏
  • 举报
回复
告诉你一个生成一个java编制的可执行文件的方式,参见以下网起码:
http://blog.csdn.net/njchenyi/archive/2005/04/09/340779.aspx
它教你如何把你的Java程序进行伪装成Windows下的原生exe文件!千万不要认为它就不是Java程序了呀!现在骗子太多了

。呵呵!

还是哪句话,Java程序你根本还没有入门呀!Java的运行机制你根本就没有好好去想呀,其中的原因是你仅仅只把Java做

为一种语言对待,同vb,vc,pb等语言一样。即使你用其它这些语言开发工具,其实你的程序总不会只有一个可执行文件而

已吧!肯定会包括一些Windows下动态连接库的。

JRE是什么东西呀?为什么必须要需要它呢!在它下面有一个Java虚拟机的东西,没有它,就好比你的电脑没有CPU一样,

其功能也正好相当于你的电脑中的CPU。没有CPU,你的电脑还能运行吗?就这么简单。

我文中的言语有许多不当之处,其本意是为了和你共同研究探讨问题!就不要在意!对不当之处表示歉意!有空还可以交流呀!
wulingdongliu 2005-04-11
  • 打赏
  • 举报
回复
肯定不可能不需要jre就运行的!
除非你用其它语言开发
.net开发出来的.exe不是也需要framework才能运行的么?
Dan1980 2005-04-11
  • 打赏
  • 举报
回复
JAVA能做到"一次编译, 到处运行"的原理就是使用JRE, 你既然选择了JAVA, 就要负责起推广普及JRE的任务. 我觉得SUN应该致力于将打造更轻便, 体积更小的JRE, 这样更容易普及, 就像Flash Player一样, 现在上网的电脑, 哪台没有Flash Player?
lasthope 2005-04-11
  • 打赏
  • 举报
回复
java,windows之间的唯一桥梁jre
JustinGr 2005-04-11
  • 打赏
  • 举报
回复
不可以的事情不要做 要么你别用java好了 用其他的 不要jre的
lifan5748 2005-04-11
  • 打赏
  • 举报
回复
关注
OnlyFor_love 2005-04-09
  • 打赏
  • 举报
回复
和你游泳一样,有水的地方自然就能游,一旦你跑到陆地上你能游了吗??
OnlyFor_love 2005-04-09
  • 打赏
  • 举报
回复
java写出来的程序,即使是跨平台,他也需要一个环境,这就是jre
ffee 2005-04-09
  • 打赏
  • 举报
回复
关注一下
呵,
我也有同样的问题
dddeee 2005-04-09
  • 打赏
  • 举报
回复
to Sharpgun(小云牛):
谢谢!正在下载!

to xiaodajin(java超级大笨蛋) :

不好意思,太多的叹号,我实在琢磨不透你的感情色彩-_-!!!

我觉得我的问题其实是很实际的(估计没问好吧)。除了学JAVA的,一般人的机子上并没有装jre。如果我写的程序够好,好到让别人愿意为了运行我的程序专门去下载安装一个jre,那我当然没有什么好顾虑的。但是,我觉得我写的JAVA应用程序功能很简单,别人会专门为我装个jre吗?所以我尽可能希望我的程序安装和运行时的要求小一点,最好不用单独安装JRE。

用其它的语言来写,就不会有这样的顾虑,但是我只会JAVA,所以想用JAVA来做。也因此才有这样的烦恼:需要JRE,执行速度慢。如果能解决就好了。

还是要多谢你,你的解释很形象,长了知识。
xiaodajin 2005-04-09
  • 打赏
  • 举报
回复
哈哈!我觉得你学java语言根本没有入门呀!我也是一样,建议你如果想要在windows下直接运行exe文件,直接用windows下的工具,微软的编程工具对此支持的相当好,好到你想拆开都不行的地步了。jre,中文名是java运行时的环境,好比java为你搭的一个大舞台,你如果觉得这个舞台太大了,完全可以到随便找一块空地活动一下的。一个大舞台是不适合一个人在里面发挥的,这样也是极大的浪费呀!java是一个包罗万象的东西,你不需要,别人可能会用到,所以它是需要占用你一部分的空间。你看现在流行的一些垃圾的游戏,少说也得几G的空间,java程序是相当小的,你看jdk\bin目录下的可执行文件,大部分只有几十K字节。当然了,java的执行速度问题,确实是值得进行好好研究并进行优化的。\jre\bin\client和\jre\bin\server目录就是你的虚拟机所在,jre\lib目录是一些java提供的类库,恭喜你,不用麻烦你亲自去写的,吃现成的啦!呵呵!哈哈!一般在jdk下可能会有多个bin或是lib目录,这要看你的环境变量是么样设置的,其实只要有一套就行了,你得让该死的操作系统能帮你找到你想用的java执行的工具命令和类库。
java运行时环境是什么东西呀?其实是一个在内存中执行一些程序,帮你在后台撑着,当然了,你要了解你的这些后台的尊姓大名才行的,不然别人帮了你的忙,你却不知道感谢人家!告诉你一个秘密呀!你可以在内存中运行好几套这样的运行环境,互不影响的。
jre打包是个好东西!就像你到餐馆里吃东西,点多了,吃不完,那就打包吧!用一支手拿肯定也拿不完,这不,人是很聪的,用一个麻袋来装不就行了,所有东西都装进去了,拿回家后,你还可以一样一样拿出来吃的!好吃又不想浪费,没办法呀!java中的打包上一样,就是图方便嘛!仅此而已!
听说borland开发jbuilder时,想过开发把java程序转换为原生的windows程序的工具,其实是多此一举!谁会没病,总想进医院,除非医院里有蛮多plmm呀!呵呵!你如果仅仅只把java当一门语言看待的话,哪就好比瞎子和大象的故事说的一样,你说大象就是一支蒲扇!哈哈!这种故事我不知听了多少次了,总是大笑几声就完了!我们要想专业,必须保持专注,以此为自己生存的职业呀!
java运行时环境,是一个非常重要的概念!大家要去想他一千年呀!大家来一起研究呀!
Sharpgun 2005-04-09
  • 打赏
  • 举报
回复
还有一点,Jre是针对不台操作系统设计的,你打包的话也要分几个平台版本来打包哦
我不懂具体如何打包,你可以研究一下别人是如何打包的。
里有一个Windows版桌面程序的下载,有打包Jre和不打包Jre的两个版本,希望对你有帮助
研究好了别忘了告诉我!:)
http://www.openedms.com/download/
dddeee 2005-04-09
  • 打赏
  • 举报
回复
我是希望别人的机子不用手动安装jre也能运行,这样看来把jre打包在程序中也是一种方法,那怎么把jre打包在程序中呢?

还有一点,jre也挺大的,j2sdk目录下的jre好像有50多M,能不能把与自己的程序无关的那些文件和类去掉,让它变小一点呢?
cuixiping 2005-04-08
  • 打赏
  • 举报
回复
彻底的方法只有一个:把你的java程序重新改写成汇编的,什么都不依赖的,只跟硬件挂钩。
qiongtumlL 2005-04-08
  • 打赏
  • 举报
回复
这应该是个不可能的事情
chg2008 2005-04-08
  • 打赏
  • 举报
回复
把JRE打包进去了
____________________
显然还是需要JRE的支持
加载更多回复(6)
java的优势? 1:跨平台(平台:指的是操作系统) 常见的操作系统:Windows Unix Linux Solaris(Sun) 跨平台:用java开发出来的应用程序不受底层操作系统的限制 底层的功臣:JVM = java虚拟机 = 1 + 2 + 3 = 秘书 + 保镖 + 翻译 = 秘书 = 类加载器 = ClassLoader = 保镖 = 字节码校验器 = ByteCode Verifier = 翻译 = 解释执行器 = Interfreter 2:安全 健壮 电力 电信 银行 都会有限考虑使用java实现 3:免费 开源 4:简单 语法简单:c++-- (取其精华 去其糟粕) 糟粕:手动垃圾回收 运算符重载 指针 思想简单:面向对象的思想 = OO思想 面向过程:需要人站在计算机的角度去思考问题 面向对象:需要人拿着代码模拟实现生活 类:一组类型相同事物高度抽象之后的集合概念 创建对象的模板 -》 class 对象:类的一个具体的实例 例子: 人和范冰冰之间的关系? 类和对象 HelloKitty和猫之间的关系? 对象和类 引用:对象的名字 *:一个对象同时可以有多个名字 但是不能一个 名字都没有 如果一个对象一个名字都没有的话 会被gc回收掉 -》 零引用内存回收 属性:对象有什么 方法:对象会什么 5: 动态更新 对于Sun公司官方提供的一些核心方法 值保留一个指向的关系 当若干年后核心类库升级了 我们的程序还是可以正常执行 这是挤兑c/c++的 搭建开发环境: 1:安装jdk http://www.oracle.com SDK = software developmenet kits = 软件开发工具包 JDK = java + SDK = java软件开发工具包 jdk1.5.0 jdk1.6.0 jdk1.7.0 jdk5.0 jdk6.0 jdk7.0 Tiger Mustang Dolphin 老虎 野马 海豚 路虎 悍马 .... JRE = java runtime environment = java运行环境 组成关系: JVM = 类加载器 + 字节码校验器 + 解释执行器 JRE = JVM + API(应用程序变成接口); JDK = JRE + BIN(常用的工具命令) 面试题: JDK和JRE之间的区别? 1:分别表示的含义不同 jdk:java软件开发工具包 jre:java运行环境 2:作用不同 jdk:当一个电脑上面安装jdk之后 会自动的安装jre 所以既可以编写程序 又可以运行程序 jre:当一个电脑上面安装jre之后 只能运行java代码 2:设置环境变量 (环境变量可以不设置 为了简化开发流程 提高开发效率) 给谁使用 作用 PATH: 操作系统 让操作系统更加快捷的找到一个文件/命令 PATH=C:\Program Files\Java\jdk1.6.0_45\bin(javac.exe->编译指令 java.exe -》运行指令) CLASSPATH:类加载器使用 让类加载器明确去哪里加载.class文件 通常不需要设置 默认值:. .:当前目录(.java) CLASSPATH相当于中国的低保制度 JAVA_HOME:其他的程序使用 WEB 设置方式: 1:一次性的设置 (cmd里面设置) set PATH=C:\Program Files\Java\jdk1.6.0_45\bin set PATH = [错误的 等号两边不能加空格] set PATH [找到所有以PATH开头的环境变量的值] set [找到所有的环境变量的值] //set PATH=C:\Program Files\Java\jdk1.6.0_45\bin set CLASSPATH=. set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45 set PATH=%JAVA_HOME%\bin *:%%表示取中间环境变量的值 *:环境变量的名字尽量大写 *:当我们需要给一个环境变量设置多个值的时候 中间需要用;隔开 2:一劳永逸的设置 我的电脑 -》 属性 -》 高级 -》 环境变量 -》 新建 面试题: 1:在设置环境变量的时候 最少需要设置几个环境变量? 0个 2:在设置环境变量的时候 通常需要设置几个环境变量? 1个 -》 PATH -> jdk/bin
为什么要学JVM1、一切JAVA代码都运行在JVM之上,只有深入理解虚拟机才能写出更强大的代码,解决更深层次的问题。2、JVM是迈向高级工程师、架构师的必备技能,也是高薪、高职位的不二选择。3、同时,JVM又是各大软件公司笔试、面试的重中之重,据统计,头部的30家互利网公司,均将JVM作为笔试面试的内容之一。4、JVM内容庞大、并且复杂难学,通过视频学习是最快速的学习手段。课程介绍本课程包含11个大章节,总计102课时,无论是笔试、面试,还是日常工作,可以让您游刃有余。第1章 基础入门,从JVM是什么开始讲起,理解JDK、JRE、JVM的关系,java的编译流程和执行流程,让您轻松入门。第2章 字节码文件,深入剖析字节码文件的全部组成结构,以及javap和jbe可视化反解析工具的使用。第3章 类的加载、解释、编译,本章节带你深入理解类加载器的分类、范围、双亲委托策略,自己手写类加载器,理解字节码解释器、即时编译器、混合模式、热点代码检测、分层编译等核心知识。第4章 内存模型,本章节涵盖JVM内存模型的全部内容,程序计数器、虚拟机栈、本地方法栈、方法区、永久代、元空间等全部内容。第5章 对象模型,本章节带你深入理解对象的创建过程、内存分配的方法、让你不再稀里糊涂。第6章 GC基础,本章节是垃圾回收的入门章节,带你了解GC回收的标准是什么,什么是可达性分析、安全点、安全区,四种引用类型的使用和区别等等。第7章 GC算法与收集器,本章节是垃圾回收的重点,掌握各种垃圾回收算法,分代收集策略,7种垃圾回收器的原理和使用,垃圾回收器的组合及分代收集等。第8章 GC日志详解,各种垃圾回收器的日志都是不同的,怎么样读懂各种垃圾回收日志就是本章节的内容。第9章 性能监控与故障排除,本章节实战学习jcmd、jmx、jconsul、jvisualvm、JMC、jps、jstatd、jmap、jstack、jinfo、jprofile、jhat总计12种性能监控和故障排查工具的使用。第10章 阿里巴巴Arthas在线诊断工具,这是一个特别小惊喜,教您怎样使用当前最火热的arthas调优工具,在线诊断各种JVM问题。第11章 故障排除,本章会使用实际案例讲解单点故障、高并发和垃圾回收导致的CPU过高的问题,怎样排查和解决它们。课程资料课程附带配套项目源码2个159页高清PDF理论篇课件1份89页高清PDF实战篇课件1份Unsafe源码PDF课件1份class_stats字段说明PDF文件1份jcmd Thread.print解析说明文件1份JProfiler内存工具说明文件1份字节码可视化解析工具1份GC日志可视化工具1份命令行工具cmder 1份学习方法理论篇部分推荐每天学习2课时,可以在公交地铁上用手机进行学习。实战篇部分推荐对照视频,使用配套源码,一边练习一遍学习。课程内容较多,不要一次性学太多,而是要循序渐进,坚持学习。      

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧