发布为 Linux 程序

Linux 运行包中没有像 Windows 那样的 exe 启动文件,文件内容略有不同。

Linux 运行包结构

Linux/
├── jre/
│   ├── lib
│   ├── LICENSE
│   ├── bin/
│   │   ├── java.exe
│   │   └── javaw.exe
├── libs/
│   ├── jar1.jar
│   └── jar2.jar
├── classes.jar
├── start.config.ini
└── 启动程序名称.sh

输出的视窗程序运行包默认将被保存到 Linux 文件夹中,该文件夹中各个文件的作用为:

  • jre

    • 存放 JDK 安装包中的 Jre 运行环境,下载 JDK 后,直接解压到本地,然后复制 JDK 中 jre 文件夹中的所有文件到该文件夹中,即可正常使用软件。注意:jre 文件夹中的 java 路径,正确路径应该为 jre/bin/java.exe
  • libs

    • 存放程序中的用到的扩展类库或第三方的 jar 依赖包,以及 DLL 文件。
  • classes.jar

    • 程序核心执行文件。
  • start.config.ini

    • 程序启动时的配置文件,该文件不可被删除、也不可修改名称,该文件主要作用为配置启动 classes.jar 时的 Java.exe 路径,以及启动时的主类。

    • Linux下该文件默认配置内容为:

    • # 设置 java 文件路径,注意:Linux 平台下的 java 没有后缀,默认使用当前运行目录 jre 文件夹中的环境
      # 如果还未下载环境、可以到 https://repo.huaweicloud.com/java/jdk/8u151-b12 该地址中下载含有 linux 关键字的环境包
      # 下载时需根据自身设备芯片及位数选择合适的环境包
      # 下载后、解压其依赖包到 jre 文件夹中,并调整其路径为:当前目录/jre/bin/java
      JAVA_PATH=./jre/bin/java
      # 设置待启动的主类文件,一般不需要修改,编译时会默认设置
      MAIN_CLASS=my.app.App
      
  • 启动程序名称.sh

    • 该文件为 Linux 下的脚本执行程序,相当于是一个调用 Java 启动 classes.jar 脚本文件,在Linux系统中双击即可启动程序。

注意事项

配置文件 start.config.ini 中,默认 Java 文件路径为当前运行包中的 Jre 环境中的 Java.exe ,但发布的运行包内的 jre 是空的,因此直接复制项目到 Linux 系统中是无法正常启动程序。

有两种方式可以解决该问题:

  1. 下载您目标系统对应的 JDK,然后再将其 jre 文件夹内容复制到运行目录中的 jre 文件夹中。

  2. 如果您的 Linux 系统已经安装有 JDK8 ,则可以直接修改配置文件中的路径为您 Linux 系统中已经安装的 JDK 的 Java.exe 文件即可。