本文导读

  • Java SE 项目通常会用来封装工具类,此时如果要打包(Jar包),建议使用Maven更加简单,本文不做描述
  • Java SE 项目如果使用了awt、swing,Java FX,则可以用来做GUI程序;否则可以做普通的后台程序,即不需要用户界面的程序。无论哪种都应该导出为可执行Jar文件,即类似exe程序一样,双击即可运行。可执行Jar程序放到任何安装了Java JRE或者JDK电脑上双击都能运行
  • 本文以一个Java SE 普通后台程序和一个Java FX GUI程序为例进行说明

Java SE 应用

新建应用

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

应用编码

  • 程序很简单,以后双击jar文件时,就会写日志,支持用户输入命令行参数,用户输入什么,全部打印到日志文件中

IDEA 打包 可执行 Jar 程序

package com.lct.utils;

import org.apache.commons.lang3.StringUtils;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.ResourceBundle;

/**
 * Created by Administrator on 2018/6/29 0029.
 * 日志工具类
 */
public class LogWmxUtils {

    private static final String LOG_DIR_PATH;

    static {
        ResourceBundle resourceBundle = ResourceBundle.getBundle("system");
        LOG_DIR_PATH = resourceBundle.getString("logDirPath");
    }

    /**
     * 写入日志
     *
     * @param message
     */
    public static final void writeLine(String message) {
        try {
            if (StringUtils.isNotBlank(message)) {

                File logDir = new File(LOG_DIR_PATH);
                if (!logDir.exists()) {
                    logDir.mkdirs();
                }
                SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                String logName = simpleDateFormat1.format(new Date());
                String messageHead = simpleDateFormat2.format(new Date());

                File logFile = new File(logDir, logName + ".log");
                FileWriter fileWriter = new FileWriter(logFile, true);
                fileWriter.write(messageHead + "" + message + "\r\n");
                fileWriter.flush();
                fileWriter.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
package com.lct.main;

import com.lct.utils.LogWmxUtils;

import java.util.concurrent.TimeUnit;

/**
 * Created by Administrator on 2018/6/29 0029.
 * 应用程序入口
 * 程序执行完成后,就会自动退出
 */
public class MainApp {
    public static void main(String[] args) {
        try {
            /** 主要介绍方式,所以编码很简单*/
            StringBuffer stringBuffer = new StringBuffer();
            if (args != null && args.length > 0) {
                stringBuffer.append("User input parameters:");
                for (String arg : args) {
                    stringBuffer.append(arg + " ");
                }
            } else {
                stringBuffer.append("User input parameters are empty");
            }
            LogWmxUtils.writeLine(stringBuffer.toString());
            /** 延时10秒,模拟程序执行任务*/
            TimeUnit.SECONDS.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

生成jar可执行文件

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

运行测试

  • 可以将此 可执行jar文件 拷贝到任意安装了Java 环境的电脑上运行,如下所示双击运行之后,可在任务管理器中看到一个"javaw.exe"的虚拟机进程

IDEA 打包 可执行 Jar 程序

  • 如果china.jar在已经运行的情况下,再次双击运行时,则会新开进程进行运行,这时任务管理器就会看到多个进程在运行

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

Java FX应用

新建项目

  • IDEA 新建Java FX 应用可以参考《IDEA JavaFX 开发入门》,此处不再累赘
  • 这里只讲 打包成 可执行 Jar文件,其实与上面的 Java SE应用打包完全一致

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

生成jar可执行文件

  • 下面是它默认打包的形式,用它可以直接生产exe程序,但是这里暂时先不讲,选中之后点击红色的横杆删除掉,现在不讲这种方式
IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

IDEA 打包 可执行 Jar 程序

运行测试

  • 同样直接双击运行即可,可以看到窗口,也可以看到任务管理器中的javaw.exe进程
  • 同样应用中可以做任意操作,如通信,网络编程,文件上传下载,UDP监听等等,照样mian方法可以接收参数

IDEA 打包 可执行 Jar 程序





相关文章:

  • 2022-01-05
猜你喜欢
  • 2022-12-23
  • 2021-04-02
  • 2021-10-18
  • 2021-10-05
  • 2021-09-06
  • 2021-07-08
  • 2021-06-13
相关资源
相似解决方案