java实现可安装的exe程序

通过编写Java代码,实现可安装的exe文件的一般思路:

1、在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格式的jar包;

2、通过安装exe4j软件,将导出的.jar格式的文件制作成.exe格式的可执行的文件,(注意:此时的.exe文件只是可以执行,还不能够安装);

3、通过安装Inno setup软件,将可执行的.exe格式的文件、.jar格式的文件以及其它需要的文件制作成一个可安装的.exe格式的文件;

4、非常注意:在exe4j和Inno setup软件中选择的路径都是相对路径,因此在导出的jar包、exe4j、Inno setup等软件执行的过程中,强烈建议一直保持在一个文件夹内进行操作和输出文件;

通过java代码实现可安装的exe格式文件的一般步骤如下:

一、创建java项目,编写好java代码,导出jar包:

1、创建java项目,编写java代码就不用多说了;

2、如果需要可以将程序中的一些信息,写在一个项目(jar包)外部的.ini格式的配置文件中去,比如客户端链接服务端的IP、端口号等信息,以后服务端的IP和端口号修改了,只需要修改配置文件即可,不需要修改java代码了,具体步骤如下:

(非常注意:.ini格式的配置文件最好是和项目(jar)包在一个工作目录下)

(1)创建.ini格式的配置文件,然后在配置文件中写入信息,以key-value键值对的形式进行书写:

(2)在项目中编写java代码,在项目或程序启动时,首先读取.ini格式的配置文件中的信息,将获取的信息给项目中需要的地方,读取.ini格式文件信息的代码如下:

package com.util;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.Properties;

import com.model.ServerInfo;

/**

* 读取连接服务端配置信息的.ini格式文件信息的工具类

* @author admin

*

*/

public class LoadServerInfo {

public static ServerInfo LoadIniFile(){

Properties properties = new Properties();

File exeWorkFile = new File("");//获取jar或exe或项目工作目录的路径

String iniPath = exeWorkFile.getAbsolutePath()+File.separator+"serverInfo.ini";//获取.ini格式文件的路径

ServerInfo serverInfo = new ServerInfo();

try {

properties.load(new FileInputStream(iniPath));//读取.ini格式文件中的信息

//通过key获取.ini文件中对应的value值,并将该value值存储到一个对象中去

serverInfo.setIP(properties.getProperty("IP"));

serverInfo.setPortNumber(Integer.valueOf(properties.getProperty("portNumber")));

} catch (IOException e) {

e.printStackTrace();

}finally{

return serverInfo;//将存有.ini格式文件中信息的对象返回

}

}

public static void main(String[] args) {

ServerInfo serverInfo = LoadServerInfo.LoadIniFile();

System.out.println(serverInfo);

}

}

对应的存储服务端信息的实体类代码如下:

package com.model;

/**

* 连接服务端配置信息实体类

* @author admin

*

*/

public class ServerInfo {

private String IP;//服务端IP

private Integer portNumber;//服务端的Socket端口号

public ServerInfo(){

}

public ServerInfo(String iP, Integer portNumber) {

super();

IP = iP;

this.portNumber = portNumber;

}

public String getIP() {

return IP;

}

public void setIP(String iP) {

IP = iP;

}

public Integer getPortNumber() {

return portNumber;

}

public void setPortNumber(Integer portNumber) {

this.portNumber = portNumber;

}

@Override

public String toString() {

return "ServerInfo [IP=" + IP + ", portNumber=" + portNumber + "]";

}

}

3、导出jar包:

步骤一:

步骤二:

步骤三:

二、通过安装exe4j软件,将jar包制作成可执行的exe格式文件(注意:此时的exe格式文件只是可以执行,但是不可以安装):

1、下载exe4j软件,然后按照正常的进行安装即可:

2、步骤一:

3、步骤二:

4、步骤三:注意选择路径的时候一定要选择存放有jar包、jre等文件的文件夹所在的路径,这也是输出.exe格式文件的路径,强烈建议这样写;

5、步骤四:填写可执行exe文件名称、选择exe可执行程序的图标、一台计算机上是否只允许有一个该程序启动;

非常注意:ICO格式的文件一定是通过PS输出ICO格式的图片,不能够将其它格式文件强制修改为ICO格式文件,否则会报异常:

java.io.IOException:icon file does not contain icon data;

6-1、步骤五-1:设置编码格式为UTF-8,输入内容是:-Dfile.encoding=utf-8

如果不设置编码格式的话,服务端传递给客户端的中文会在客户端中显示会变为乱码;

6-2、步骤五-2:将项目导出的jar包添加进来,非常注意:此时的jar包路径一定要相对路径,因为上述选择输出.exe格式文件的路径就是jar包所在文件夹的路径,即exe4j软件工作空间就是jar包所在的路径,相对路径是相对于工作空间来说的,因为jar包就在工作空间的根目录下,因此只接写jar包的文件名+格式即可;

7、步骤六:选择执行项目时,首先执行的第一个java类,类似于在BS项目中,访问某个项目时设置访问首页一样;

8、步骤七:项目的jar包和项目访问的首类设置好后,直接next下一步即可;

9、步骤八:利用exe4j制作的.exe格式文件默认的是32位操作系统的文件,如果要制作64位操作系统的文件,可以按照下图进行选择设置;

10、步骤九:设置程序运行时jre的版本范围;

11、步骤十:因为创建的是java项目,项目最终是要在jvm上进行运行的,如果要用户自己安装jdk,配置环境变量非常的不方便,因此可以制作的过程中将jre封装进行,可以自己设定好运行环境jre的版本,让用户更加方便的使用程序,下图是为程序设定Jre运行环境的步骤:非常注意:jre要放在和jar包同级目录下,这样就可以写相对目录了,否则容易出现文件;

12、步骤十一:以后直接默认next即可:

三、通过安装Inno setup软件,将可执行的.exe文件、jar文件、jre文件封装到一个可以安装的.exe文件:

1、安装Inno setup软件,并启动该软件:

2、默认next即可:

3、设置程序安装时默认创建的安装文件夹以及程序的版本号等信息:

4、默认next即可:

5、选择可执行的.exe格式文件的目录:

6、将可执行的.exe文件、jar包、jre文件所在的文件夹添加进来,并且将该文件夹内的所有文件均添加进来,这样可以设置成相对路径了就:

7、默认next即可:

8、在.exe文件、jar包、jre文件所在的文件夹内创建1.txt、2.txt、3.txt三个文本文件,并按照下图依次设置即可,我也不知具体原因,可能是要存储一些运行过程中的信息吧:

9、默认next即可:

10、设置输出可安装的.exe格式文件的位置、输出的.exe格式的文件名称、可安装程序的桌面图标,

非常注意:

(1)可安装的.exe格式文件输出位置一定也要是jar包、jre文件、可执行.exe文件所在的文件夹;

(2)ICO格式的文件一定是通过PS输出ICO格式的图片,不能够将其它格式文件强制修改为ICO格式文件,否则会报异常:

java.io.IOException:icon file does not contain icon data;

11、直接默认next,按照图片上步骤进行即可:

12、制作完毕,现在可以看一下可以安装的.exe格式文件了:

13、最终,只需要将可安装的exe文件,即上图片中的setup.exe(存储大的exe文件)发给用户安装即可,其它的jar包、jre、可执行exe等文件都封装在了可安装exe文件内,只用可安装的exe程序即可;

java程序安装_java实现可安装的exe程序相关推荐

  1. java.exe 安装程序_java实现可安装的exe程序实例详解

    java实现可安装的exe程序实例详解 通过编写Java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格 ...

  2. java写exe程序实例,java实现可安装的exe程序实例详解

    java实现可安装的exe程序实例详解 通过编写java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写java代码,将编写好的java项目导出一个.jar格 ...

  3. 关于SVN安装目录下,没有svn.exe程序的解决

    关于SVN安装目录下,没有svn.exe程序的解决 原因: 产生这个问题的原因是由于我们在安装svn时,默认缺少一项导致的,我们只需要再重新安装一下即可(不需要卸载) 双击安装文件后,选择Modify ...

  4. java怎么安装_Java桌面应用程序篇:发展历史以及程序的应用

    java桌面应用印象 因为桌面程序运行在宿主机器上, 所以比如你运行java桌面程序,必然要安装java虚拟机, 也就是相当于在操作系统上再加一层抽象. 这与直接调用api的桌面程序效率相比,或多或少 ...

  5. java怎么安装_java怎么安装不了

    您好,亲爱的楼主,很高兴为您回答java的运行需要虚拟机的支持,但是对于初学者来说,与其说是虚拟机倒不如说是java运行时环境(其中就包括了虚拟机),所谓java. . 1.先将软件下载到电脑2.把手 ...

  6. java怎么安装_Java怎么安装?Java运行环境安装教程

    最近有网友说不知道怎么安装JAVA,不知道怎么安装最新版本的JAVA,今天极速小编为你做一个简单的安装教程,希望对你们有帮助.首先我们下载JAVA(下载地址:http://www.jisuxz.com ...

  7. VB程序安装时,提示acmboot.exe发送错误

    安装过程中提示acmboot.exe发送错误,在网上找到解决办法: 1.在 vb安装程序文件中SETUP文件夹 下,复制一份VS98ENT.STF并命名为ACMSETUP.STF 2.把 vb安装程序 ...

  8. java sdk 安装_Java SDK下载安装环境配置+AndroidKiller配置教程

    1.先要安装好适合你系统版本的JDK,在这里我使用的是JDK8,161版本: JAVA(JDK)版本:8,V161版本(Java SEDevelopment Kit 8u161),下载地址: 注意:因 ...

  9. win32应用程序_电脑打不开exe程序|Win10提示exe不是有效32应用程序

    Win10中,有些用户,在打开exe文件的时候,提示不是有效的win32应用程序,出现这种问题,有可能是文件关联出现错误.我们可以尝试修改注册表来解决问题. 方法/步骤: 1.按 Win + S 组合 ...

最新文章

  1. tomcat中server.xml文件详解
  2. Epoll在LT和ET模式下的读写方式
  3. python监听udp端口_python检测远程udp端口是否打开
  4. 多线程:一个线程在运行时发生异常会怎么样?
  5. linux 设置时间为昨天,Linux —— 时间(tzselect、timedatactl命令,查看和修改时区,修改时区为东八区)...
  6. 第九章 PX4-pixhawk-姿态估计解析
  7. Hadoop之NameNode和SecondaryNameNode工作机制详解
  8. 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
  9. praying,blessing,wishing
  10. Java:检查器框架
  11. abaqus切削为什么没有切屑_切削液降温6大绝招,肯定有一款适合你
  12. Maven学习总结(45)——Maven仓库、将本地Jar包安装到仓库、打可执行的Jar总结
  13. 今天中国获得金牌数量是7块,位居奖牌榜首位
  14. windows操作系统下载tomcat,并与eclipse进行整合
  15. 统计SQL语句和存储过程
  16. 编程中的幂等性(一):http幂等性
  17. 球形天空盒php,unity3d天空盒
  18. 2018年下半年系统集成项目管理工程师真题及答案解析
  19. JavaScript高级程序设计——开篇前言
  20. 如何破解终端算力困局?PRCV这篇论文让机器人“算有余力”

热门文章

  1. 10上wsl位置迁移_wsl的安装/升级笔记
  2. php transport,PHPMailer - PHP email transport class
  3. ado filter 多条记录_江苏气动断料锯商家,多条锯_邢台富宇来机械厂
  4. 希望今年能看懂和写出这样的Swift代码
  5. linux sysconf函数,linux c sysconf函数 得到系统配置
  6. linux中gcc是什么指令,Linux gcc常用命令
  7. CRC32爆破解密脚本工具(三)
  8. 【Python教程】sort 与sorted的用法与区别
  9. python基础教程:python中@的用法
  10. Python list,tuple,dict,set高级变量常用方法