大家都知道java生成的exe如果没有jre是无法运行的,如果客户自己安装setup.exe以后自己配置java环境,那客户一定会骂你这个软件怎么这么差,呵呵。所以我今天要说的使用InstallShield打包将java exe jdk(或jre)一起打包安装,安装完成自动执行EXE.至于如何打包exe请参考我前面写的:http://suiyuan0808.iteye.com/blog/852231.我把我之前做的打包代码拷贝出来供大家参考。这段代码需要写到InstallShield工程的Setup.Rul里面去。下面语言有点像vb语言

/*

*author:Ldfu

*/

#include "ifx.h"

//开始安装时候会自动检查jdk环境并安装

function OnBegin()

begin

Disable (BACKBUTTON);

if(!MAINTENANCE)then

SdLicense2 ("License ", "", "", SUPPORTDIR ^ "sn.txt", FALSE);

endif ;

//如果大家的jdk和我的不一样请修改红色粗体部分即可。

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

//这里意思在注册表里面没有找到jdk注册信息,则安装jdk

if (RegDBKeyExist ("SOFTWARE\\JavaSoft\\Java Development Kit\\1.6.0_04") < 0) then

if(LaunchAppAndWait (SUPPORTDIR^"jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe","", LAAW_OPTION_WAIT)<0)then

MessageBox ("您的系统没有安装JDK 1.6.0_04 t! ", INFORMATION);

endif;

endif;

end;

//安装结束之前,设置java_home环境变量

function OnEnd()

STRING szFeatureName;

STRING serviceTarget;

STRING szDocFile;

STRING szKey;

NUMBER nvType;

STRING svValue;

NUMBER nvSize;

begin

//检查是否已经安装jdk

szKey = "SOFTWARE\\JavaSoft\\Java Development Kit\\1.6.0_10";

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

//如果已经安装则设置环境变量 java_home

if (RegDBKeyExist(szKey)=1) then//如果该注册表值存在

if(RegDBGetKeyValueEx(szKey,"JavaHome",nvType,svValue,nvSize)=0) then

szKey = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";

if(RegDBSetKeyValueEx(szKey, "JAVA_HOME", REGDB_STRING, svValue, -1)<0) then

MessageBox ("Javahome create failed, please set it manually!", SEVERE);

endif;

endif;

endif;

//最后启动您的exe文件

szFeatureName="main";

serviceTarget=TARGETDIR^"wangdianzhushou.exe";

if (FeatureIsItemSelected(MEDIA, szFeatureName)=1) then

if(FindFile(TARGETDIR, " wangdianzhushou.exe ", szDocFile)=0) then

if (LaunchApp (serviceTarget, "") < 0) then

MessageBox ("无法启动程序 "+serviceTarget+".", SEVERE);

endif;

endif;

endif;

end;



installshield java_使用InstallShield打包java程序exe以及jdk,安装完成自动运行相关推荐

  1. 打包java程序生成exe

    打包java程序生成exe 目标 我们知道c++的控制台程序编译运行以后就会生成一个exe可执行文件,在电脑上可以直接双击运行,但是java是跨平台的语言,编译运行以后的字节码文件.class是和平台 ...

  2. 图片资源加载路径分析以及netbeans打包java程序,并包含图片资源

     1. 首先说说如何将图片导入程序中 图片放在images文件夹下,该文件夹放在不同地方,程序中有不同的加载方法. (1)images/test.png放在了src下,则程序中加载的路径为:new I ...

  3. java项目运行在浏览器_在 Java 程序中,能在 WWW 浏览器上运行的是 程序。_学小易找答案...

    [简答题]已知:如图, AD 是△ ABC 的角平分线, DE//AC, 交 AB 于点 E , DF//AB ,交 AC 于点 F ,求证: AD ⊥ EF. [简答题]Java语言具有较好的安全性 ...

  4. java菜鸟1:jdk 安装

     一.什么是JDK  http://java-mzd.iteye.com/blog/838514 JDK : Java Development ToolKit(Java开发工具包).JDK是整个J ...

  5. 利用PHP安装windows自动运行的服务,PHP程序可以实现长时间、自动运行、定时更新功能,直接可以用在项目中的类源代码...

    为什么80%的码农都做不了架构师?>>>    什么 windows服务 ? Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运 ...

  6. Java SE Development Kit (JDK) 安装

    Java SE Development Kit (JDK) 安装 java jdk \ jre 这两个文件最好放在一个文件夹下 安装完成后 环境变量添加 系统变量中会有javapath(没有自己添加) ...

  7. Java调用python打包的程序.exe,包括获取exec()中打印的日志,亲测有效

    python写了一个方法,windows平台上怎么被Java服务调用呢? 最简单的办法,python利用pyinstaller打包成.exe程序,Java程序通过Process调用,想同时获取.exe ...

  8. 教你打包Java程序,jar转exe随处可跑

    本文出自One Coder博客,转载请务必注明出处:http://www.coderli.com/archives/runnablejar-to-exe/ 发现很多人问如何把Jar转成exe程序.可能 ...

  9. eclipse中的java包awt_Eclipse中打包java程序

    Java应用程序可以脱离Eclipse运行,但在运行之前要把应用程序打成一个JAR包,Eclipse下打包的方式方法和标准的AWT/SWUNG程序基本一样,主要有以下几点: a.MANIFEST.MF ...

  10. 利用InstallAnywhere 打包java程序

    InstallAnywhere 的使用跟其他应用程序差不多, 最有可能出现问题的是带 jre 的 java 程序打包. 先简要介InstallAnywhere 的操作步骤: 运行程序 -> 创建 ...

最新文章

  1. xp装linux一键安装教程图解,XP下硬盘安装CentOS 6.0图解教程
  2. Qt QML模块提供的重要C ++类
  3. 服务器配置文件salt,saltstack 配置文件详解
  4. 涨跌因子计算器下载哪里下载_小白计算器软件下载-小白计算器app下载 v1.0 安卓版...
  5. PHP环境,放置系统盘的文件
  6. (HY000): Cannot modify @@session.sql_log_bin inside a transaction
  7. CSS之深入理解 flex 布局以及计算
  8. 链接选项 rpath 的原理和应用
  9. 玩转 Springboot 2 之热部署(DevTools)
  10. java doprivileged_【转】关于AccessController.doPrivileged
  11. Linux系统下文件与目录操作
  12. Linformer 拍了拍 被吊打 Transformers 的后浪们
  13. api php usdt 以太坊_以太坊PHP离线交易开发包
  14. 一句话菜刀 php eval,如何基于菜刀PHP一句话实现单个文件批量上传?
  15. MSP430系列教程(一) 开发环境搭建(IAR for MSP430 v7.10.1)
  16. 计算机网络——应用层
  17. 欢迎使用CSDN-markdown编辑器11345
  18. SeaweedFS 分布式 上传、下载、删除附件公共接口
  19. 调频广播信号覆盖质量智能监测系统
  20. 文件上传--单个或多个文件上传

热门文章

  1. jquery仿钉钉流程图制作。
  2. 【计算机网络】常见面试题总结
  3. 笔记1-P2P后台管理系统
  4. 星期几计算函数参考 周几计算 礼拜几计算函数 C语言 C++函数参考 用公式计算 通用函数 Linux开发函数 Windows开发函数参考
  5. MacOS获取辅助功能权限控制鼠标点击事件
  6. poi word设置页眉图片,控制首页不同
  7. 查看SqlServer数据库上面脚本修改信息以及修改日志
  8. php链路追踪molten
  9. 量化研究-恐慌和贪婪指数
  10. java设置手机后台进程限制_当应用程序在Android Pie上受到后台限制时启动前台服务...