2024-04-21 07:51:24 | 我爱编程网
最近我也做了一个Java程序需要在别的电脑上跑,亲测最简单有效。
1、Java程序导出为xxx.jar文件(eclipse按步骤导出就行),放入
文件夹
A
2、把Java运行环境——整个jre文件
放入文件夹A
3、(最重要)新建文本,打入如下代码,更改后缀名为
.bat
,放入文件夹A
%~d0
cd %~dp0
set path=jre\bin
start javaw -Xms256m -Xmx512m -jar map.jar
(我的Java文件名叫map.jar这里要改的)
4、程序在MS-DOS(WIN+R,输入cmd回车)运行的。先找到文件夹A,运行
bat文件
(为了设置
环境变量
),输入java -jar xxx.jar 运行你的Java程序,OK!
java程序的运行时需要环境的。
java程序的运行环境就是JRE,你说的JDK其中也包含了JRE所以java程序可以运行,但是JDK中还包含有用于开发java程序所用到的工具,而这些JRE中是没有的,如果你单是想运行java程序,那么装一个JRE就可以了。
java的跨平台特性是指:
java程序的运行于平台无关,无论你是在windows上,还是在Uinx还是在Linux上,都可以运行java程序,前提是你要有程序运行的环境。
不要以为java程序可以脱离JRE独立的运行,那是不现实的,也是没有道理的。
跨平台好像被说的没有什么。其实在java没有出现之前,对于程序的跨平台确实是一个比较费时而且难以实现的工作。
比如C语言,因为他要操作内存中的东西,而且不同芯片组的位数不同,所以在C语言中要用到针对该芯片组的数据类型,而这些数据类型就已经把这个程序和这种芯片组的机器绑定在一起了。如果这个程序拿到其他机器上(32位机到64位机上),这个程序就无法运行。我爱编程网
那么java是如何做到跨平台的呢?
java全面支持Unicode编码方式,所以数据类型都采用统一的表示方式,而且java编译后生成的不是直接可以运行的可执行文件,而是一种中间态的文件----class文件。这种文件在程序要运行的时候才会根据不同的平台来生成最后的可执行程序。
这个也就是java跨平台的原理。
1. 拷贝一个完整版的jre文件夹到D盘
2. 删除jre目录下所有出bin和lib目录的所有文件或目录
3. 打开cmd窗口,设置path路径为空,转到D:\jre\bin目录,运行java –version。正常显示当前Java的版本。
4. 在bin目录中新建一个temp目录,将除java.exe和java.dll外的移到temp目录中
5. 再次运行java –version命令,提示没找到verify.dll。将temp目录中的verify.dll移到bin目录中
6. 再次运行 java –version命令,提示:Could not create the Java virtual machine.错误
7. 根据测试:还要将hpi.dll和zip.dll放到bin目录中
8. 再次运行java –version命令,OK,又出现了版本信息。此时,可以将temp目录移出bin目录中。(放到桌面先)
9. 删除client目录中的除jvm.dll外的文件。转到jre目录,查看bin目录的大小,为2.89MB。但此时lib目录仍有60M有余
10. 转到lib目录,新建一个temp目录,将i386除外的目录都移动到temp目录中,再次运行java –version命令,OK
11. 再新建一个temp2目录,将charsets.jar和rt.jar外的所有文件移动到temp2目录中,再次运行 Java –version命令,OK
12. 将temp2和temp目录移到桌面。此时lib仍有48.7M接近50M。(还得努力)
13. 缩减charsets.jar和rt.jar(使用7z工具可以查看和修改jar文件的内容『直接添加和删除』)。准备做个软件来实现。
14. 缩减原则。运行java -verbose:class -version > temp.java 命令,此时在bin目录下生成了一个temp.java文件,用EditPlus打开,看到没有,要加载的就是那些类了,把不需要的全部删除就是了。
15. 原来charsets.jar没有加载呀。直接删除,再次运行java –version命令,OK
16. 接下来的工作就是裁剪rt.jar了。慢慢来。也可以做个软件来完成。可以下载一个GreenJVMMake.jar来完成。不过有时候好像有些类没加载到。要考虑更新了。
17. 裁剪玩rt.jar后,再次运行java –version ,出现了版本信息。OK
18. 转到D盘查看一下精简的jre才4.47MB。不到5M。OK
19. 最小的jre制作完毕。
2024-03-02 02:58:47
2024-01-01 09:58:48
2024-04-13 00:38:12
2024-03-31 15:14:06
2024-03-21 00:22:13
2024-02-10 22:15:59