【急】java打包成exe文件怎么样能在没装jre的电脑上运行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【急】java打包成exe文件怎么样能在没装jre的电脑上运行?相关的知识,希望对你有一定的参考价值。

java打包成exe文件怎么样能在没装jre的电脑上运行?有人说可以用exe4j,把jre打包进去,但是我好像没看到可以把jre打进去的选项?还有人说可以用javaLauncher,同样不会用,闷了。有哪位高手会的,有以教我,不胜感激!

有个简单的方法:将jre运行环境拷到你的程序目录下,你可以为你的class文件或者jar文件创建单独的目录作为你这个程序的主目录,再将jre解压下来的文件夹包含bin目录(通常叫做java_home)的哪个目录拷贝到你新建的主目录下,并将class或者jar包放入该主目录,然后在该目录创建一个后缀名为.bat的文件,用记事本打开,直接写上你运行java时的命令,不过这里你使用的java程序是该文件夹下的jre,而不是环境变量里的jre,所以应该是相对路径,bin\java class名,(jar包的运行变通一下,一样的),保存以下,双击就能运行,并且,这个运行环境跟着你的程序走,即使到了陌生的机器,同样的双击就可以运行,并且你也可以为这个bat文件创建快捷方式,更改图标等等,大概步骤就这样,文字看起来有点多,但是真正的步骤也没几步,重要的是理解 参考技术A 转一个文章,来自 DIY部落( http://www.diybl.com/course/3_program/java/javashl/2008510/115118.html) 你打包的话到第五步就行了。 第一步 jre减肥,删除jre\lib\rt.jar中不使用的类,删除charsets.jar中不使用的字符集编码.MyWork开源项目( http://mywork.sourceforge.net/)中带了一个瘦身过的JRE6.0,非常小只有几M.如果有需要可在此基础上适当的增肥,例如提示有类找不到,只要在完整的jre下rt.jar包中找到这个类所在的包添加到瘦身过的jre即可.第二步 使用pack200进行压缩,压缩效果非常惊人,具体用法可参考官方手册,下面是最简单的压缩和解压缩命令(如果要制作安装包的话不建议压缩,因为不方便解压缩,还需要另外写程序进行解压) 压缩命令D:\xxxxx\pack200 rt.jar.pack.gz rt.jar 解压缩命令unpack200 -r jre\lib\rt.jar.pack jre\lib\rt.jar第三步 将自己的程序打成jar包,注意指定主类,连同依赖的jar包一同放到jre\lib\ext下面,(当然也可以不怎么干,通过写批处理指定CLASSPATH)直接放到ext下面的好处在下面会体现出来第四步 在jre文件夹的上层目录下面编写启动批处理%1的作用下面在说 @SET PATH=./jre/bin;%1;%PATH%; @start javaw com.Main(根据实际情况修改为自己的程序入口) 将本地的jre或jdk文件夹重命名,并在cmd下敲java以确认本机的jre已经失效,点击批处理,测试如果程序正常启动的话,继续往下看,如果程序无法启动,将@start javaw com.Main改写为java com.Main重新启动调试下,看看是不是缺类. 第五步 将批处理编译成exe程序,使用Quick Batch File Compiler工具( http://www.abyssmedia.com/download.shtml),程序使用起来非常简单这里就不在介绍了,E文不好的可以去汉化新世纪下载中文的,注意如果要制作成安装包必须使用幽灵模式,不可以使用控制台模式.第六步 制作安装包使用InnoSetup工具(百度一下到处都有下载),此工具有使用向导,这部分就不介绍了,向导结束后,会提示生成脚本,保存此脚本并生成exe安装包,运行安装包,如果生成出来的文件程序结构和第四步是一样的,并且可以运行的话,安装包制作完成.(这一步选择程序文件时批处理exe和jre一同加进来注意jre必须是没有进行pack2000压缩的,否则需要在安装脚本里面另写解压程序) 第七步 随windows自动启动程序,修改安装脚本添加如下代码[Registry]Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "程序名"; ValueData: """app\主程序.exe"" ""app\jre\bin""" 这里面就用到了%1 熟悉批处理的同学都知道系统自启动的时候.代表的并不是程序的所在文件夹,所以这里传递了jre所在文件夹参数,@SET PATH=./jre/bin;%1;%PATH%;中把jre添加到了path中. 第八步注销下重新登录看看程序是否自动启动了.(可以在没有安装jre的机器上测试下) 我的安装包大小为10M左右,我依赖了很多第三方的jar包,否则还可以更小,最后还可以加个壳或使用rar压缩下 参考技术B 把你电脑里面的jre拷贝到你的程序所在根目录,然后在exe4j的时候设置下你的程序的jre目录,这个网上应该有很多的回答的很好

java web 将文件打包成 .zip后 怎么自动弹出下载框提示并下载?

参考技术A 方法一:jquery 的 ajax 实现

方法二:打包成功后,返回前台,一个标记,前台js弹出框提示

参考技术B response.setContentType("application/zip");
response.setHeader("Location",fileName);
//fileName应该是编码后的(utf-8)

response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.setContentLength(fileLength);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(zipFilePath);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1)
outputStream.write(buffer, 0, i);

outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;本回答被提问者采纳
参考技术C 你可以windows.open(url)
url就是你的文件路径
这样就可以自动弹出下载框提示并下载

以上是关于【急】java打包成exe文件怎么样能在没装jre的电脑上运行?的主要内容,如果未能解决你的问题,请参考以下文章

java 怎么打包成.exe文件

如何将Java打包成exe文件在没有JRE环境的电脑上执行

如何把一个java程序打包成exe文件,运行在没有java虚拟机的机器上?

将Java项目打包成exe文件

Java程序写好了怎样在别人电脑上运行

JavaFx项目打包成exe,并集成Jre,使Java项目在任意机器运行