1. 程式人生 > >IDEA 打包 可執行 Jar 程式

IDEA 打包 可執行 Jar 程式

本文導讀

  • Java SE 專案通常會用來封裝工具類,此時如果要打包(Jar包),建議使用Maven更加簡單,本文不做描述
  • Java SE 專案如果使用了awt、swing,Java FX,則可以用來做GUI程式;否則可以做普通的後臺程式,即不需要使用者介面的程式。無論哪種都應該匯出為可執行Jar檔案,即類似exe程式一樣,雙擊即可執行。可執行Jar程式放到任何安裝了Java JRE或者JDK電腦上雙擊都能執行
  • 本文以一個Java SE 普通後臺程式和一個Java FX GUI程式為例進行說明

Java SE 應用

新建應用




應用編碼

  • 程式很簡單,以後雙擊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可執行檔案








執行測試

  • 可以將此 可執行jar檔案 拷貝到任意安裝了Java 環境的電腦上執行,如下所示雙擊執行之後,可在工作管理員中看到一個"javaw.exe"的虛擬機器程序


  • 如果china.jar在已經執行的情況下,再次雙擊執行時,則會新開程序進行執行,這時工作管理員就會看到多個程序在執行





Java FX應用

新建專案

  • IDEA 新建Java FX 應用可以參考《IDEA JavaFX 開發入門》,此處不再累贅
  • 這裡只講 打包成 可執行 Jar檔案,其實與上面的 Java SE應用打包完全一致



生成jar可執行檔案

  • 下面是它預設打包的形式,用它可以直接生產exe程式,但是這裡暫時先不講,選中之後點選紅色的橫杆刪除掉,現在不講這種方式








執行測試

  • 同樣直接雙擊執行即可,可以看到視窗,也可以看到工作管理員中的javaw.exe程序
  • 同樣應用中可以做任意操作,如通訊,網路程式設計,檔案上傳下載,UDP監聽等等,照樣mian方法可以接收引數