Преглед на файлове

增加设备运行上报功能

jingbo преди 5 дни
родител
ревизия
d921a2b344
променени са 100 файла, в които са добавени 6519 реда и са изтрити 8 реда
  1. 11 0
      .project
  2. 116 0
      src/com/mes/device/DeviceStateReporter.java
  3. 3 1
      src/com/mes/ui/LoginFarme.java
  4. 63 3
      src/com/mes/ui/MesClient.java
  5. 6 4
      src/resources/config/config.properties
  6. 24 0
      tools/jar2exe/build-exe.bat
  7. 32 0
      tools/jar2exe/build.bat
  8. BIN
      tools/jar2exe/dist/jar2exe-tool.jar
  9. BIN
      tools/jar2exe/dist/jar2exe.exe
  10. 28 0
      tools/jar2exe/dist/launch4j-config.xml
  11. BIN
      tools/jar2exe/dist/release/jar2exe.exe
  12. 17 0
      tools/jar2exe/dist/release/launch4j/.classpath
  13. 17 0
      tools/jar2exe/dist/release/launch4j/.project
  14. 21 0
      tools/jar2exe/dist/release/launch4j/.vscode/c_cpp_properties.json
  15. 17 0
      tools/jar2exe/dist/release/launch4j/.vscode/tasks.json
  16. 30 0
      tools/jar2exe/dist/release/launch4j/LICENSE.txt
  17. 77 0
      tools/jar2exe/dist/release/launch4j/build.xml
  18. BIN
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/ConsoleApp.exe
  19. BIN
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/ConsoleApp.jar
  20. 14 0
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/build.bat
  21. 57 0
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/build.xml
  22. BIN
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/l4j/ConsoleApp.ico
  23. 8 0
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/lib/readme.txt
  24. 1 0
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/readme.txt
  25. 72 0
      tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/src/net/sf/launch4j/example/ConsoleApp.java
  26. 3 0
      tools/jar2exe/dist/release/launch4j/demo/ExitCodeApp/build.bat
  27. 75 0
      tools/jar2exe/dist/release/launch4j/demo/ExitCodeApp/pom.xml
  28. 47 0
      tools/jar2exe/dist/release/launch4j/demo/ExitCodeApp/src/net/sf/launch4j/example/ExitCodeApp.java
  29. 30 0
      tools/jar2exe/dist/release/launch4j/demo/LICENSE.txt
  30. BIN
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/SimpleApp.exe
  31. BIN
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/SimpleApp.jar
  32. 14 0
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/build.bat
  33. 52 0
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/build.xml
  34. BIN
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/l4j/SimpleApp.ico
  35. 20 0
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/l4j/SimpleApp.xml
  36. BIN
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/l4j/splash.bmp
  37. 8 0
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/lib/readme.txt
  38. 1 0
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/readme.txt
  39. 195 0
      tools/jar2exe/dist/release/launch4j/demo/SimpleApp/src/net/sf/launch4j/example/SimpleApp.java
  40. 3 0
      tools/jar2exe/dist/release/launch4j/demo/readme.txt
  41. 26 0
      tools/jar2exe/dist/release/launch4j/head/LICENSE.txt
  42. BIN
      tools/jar2exe/dist/release/launch4j/head/consolehead.o
  43. BIN
      tools/jar2exe/dist/release/launch4j/head/guihead.o
  44. BIN
      tools/jar2exe/dist/release/launch4j/head/head.o
  45. 26 0
      tools/jar2exe/dist/release/launch4j/head_jni_BETA/LICENSE.txt
  46. BIN
      tools/jar2exe/dist/release/launch4j/head_jni_BETA/head.o
  47. BIN
      tools/jar2exe/dist/release/launch4j/head_jni_BETA/jniconsolehead.o
  48. BIN
      tools/jar2exe/dist/release/launch4j/head_jni_BETA/jniguihead.o
  49. BIN
      tools/jar2exe/dist/release/launch4j/head_jni_BETA/jnihead.o
  50. 26 0
      tools/jar2exe/dist/release/launch4j/head_src/LICENSE.txt
  51. 31 0
      tools/jar2exe/dist/release/launch4j/head_src/consolehead/Makefile.win
  52. 97 0
      tools/jar2exe/dist/release/launch4j/head_src/consolehead/consolehead.c
  53. 111 0
      tools/jar2exe/dist/release/launch4j/head_src/consolehead/consolehead.dev
  54. 31 0
      tools/jar2exe/dist/release/launch4j/head_src/guihead/Makefile.win
  55. 241 0
      tools/jar2exe/dist/release/launch4j/head_src/guihead/guihead.c
  56. 112 0
      tools/jar2exe/dist/release/launch4j/head_src/guihead/guihead.dev
  57. 44 0
      tools/jar2exe/dist/release/launch4j/head_src/guihead/guihead.h
  58. 1452 0
      tools/jar2exe/dist/release/launch4j/head_src/head.c
  59. 136 0
      tools/jar2exe/dist/release/launch4j/head_src/head.h
  60. 34 0
      tools/jar2exe/dist/release/launch4j/head_src/jniconsolehead_BETA/Makefile.win
  61. 99 0
      tools/jar2exe/dist/release/launch4j/head_src/jniconsolehead_BETA/jniconsolehead.c
  62. 112 0
      tools/jar2exe/dist/release/launch4j/head_src/jniconsolehead_BETA/jniconsolehead.dev
  63. 34 0
      tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/Makefile.win
  64. 244 0
      tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/jniguihead.c
  65. 122 0
      tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/jniguihead.dev
  66. 43 0
      tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/jniguihead.h
  67. 284 0
      tools/jar2exe/dist/release/launch4j/head_src/jnihead.c
  68. 41 0
      tools/jar2exe/dist/release/launch4j/head_src/jnihead.h
  69. 13 0
      tools/jar2exe/dist/release/launch4j/head_src/makefile
  70. 72 0
      tools/jar2exe/dist/release/launch4j/head_src/resource.h
  71. BIN
      tools/jar2exe/dist/release/launch4j/launch4j.exe
  72. BIN
      tools/jar2exe/dist/release/launch4j/launch4j.jar
  73. BIN
      tools/jar2exe/dist/release/launch4j/launch4j.jfpr
  74. BIN
      tools/jar2exe/dist/release/launch4j/launch4jc.exe
  75. 31 0
      tools/jar2exe/dist/release/launch4j/lib/JGoodies.Forms.LICENSE.txt
  76. 504 0
      tools/jar2exe/dist/release/launch4j/lib/Nuvola.Icon.Theme.LICENSE.txt
  77. 28 0
      tools/jar2exe/dist/release/launch4j/lib/XStream.LICENSE.txt
  78. 201 0
      tools/jar2exe/dist/release/launch4j/lib/ant.LICENSE.txt
  79. BIN
      tools/jar2exe/dist/release/launch4j/lib/ant.jar
  80. BIN
      tools/jar2exe/dist/release/launch4j/lib/commons-beanutils.jar
  81. BIN
      tools/jar2exe/dist/release/launch4j/lib/commons-logging.jar
  82. 202 0
      tools/jar2exe/dist/release/launch4j/lib/commons.LICENSE.txt
  83. 201 0
      tools/jar2exe/dist/release/launch4j/lib/flatlaf.LICENSE.txt
  84. BIN
      tools/jar2exe/dist/release/launch4j/lib/flatlaf.jar
  85. BIN
      tools/jar2exe/dist/release/launch4j/lib/formsrt.jar
  86. BIN
      tools/jar2exe/dist/release/launch4j/lib/jgoodies-common.jar
  87. BIN
      tools/jar2exe/dist/release/launch4j/lib/jgoodies-forms.jar
  88. BIN
      tools/jar2exe/dist/release/launch4j/lib/xstream.jar
  89. 12 0
      tools/jar2exe/dist/release/launch4j/manifest/uac.exe.manifest
  90. 24 0
      tools/jar2exe/dist/release/launch4j/maven/.classpath
  91. 23 0
      tools/jar2exe/dist/release/launch4j/maven/.project
  92. 14 0
      tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-dist.xml
  93. 53 0
      tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-linux.xml
  94. 53 0
      tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-linux64.xml
  95. 53 0
      tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-mac.xml
  96. 53 0
      tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-win32.xml
  97. 55 0
      tools/jar2exe/dist/release/launch4j/maven/assembly/src.xml
  98. 8 0
      tools/jar2exe/dist/release/launch4j/maven/maven-readme.txt
  99. 511 0
      tools/jar2exe/dist/release/launch4j/maven/pom.xml
  100. 0 0
      tools/jar2exe/dist/release/launch4j/sign4j/Bouncy Castle.LICENSE.txt

+ 11 - 0
.project

@@ -14,4 +14,15 @@
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
+	<filteredResources>
+		<filter>
+			<id>1783319195628</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>org.eclipse.core.resources.regexFilterMatcher</id>
+				<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
+			</matcher>
+		</filter>
+	</filteredResources>
 </projectDescription>

+ 116 - 0
src/com/mes/device/DeviceStateReporter.java

@@ -0,0 +1,116 @@
+package com.mes.device;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.mes.util.HttpUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Properties;
+
+/**
+ * 工位客户端设备状态上报(按 gw + lineSn)
+ */
+public class DeviceStateReporter {
+
+    public static final Logger log = LoggerFactory.getLogger(DeviceStateReporter.class);
+
+    /** 正常运行 */
+    public static final String STATE_RUNNING = "1";
+    /** 工位退出/收班 */
+    public static final String STATE_STOP = "7";
+
+    private static DeviceStateReporter instance;
+
+    private String serverIp;
+    private String gw;
+    private String lineSn;
+
+    private DeviceStateReporter() {
+    }
+
+    public static DeviceStateReporter getInstance() {
+        if (instance == null) {
+            synchronized (DeviceStateReporter.class) {
+                if (instance == null) {
+                    instance = new DeviceStateReporter();
+                }
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * 从配置文件初始化
+     */
+    public void initFromConfig() {
+        try {
+            InputStream is = ClassLoader.getSystemResourceAsStream("config/config.properties");
+            Properties pro = new Properties();
+            BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+            pro.load(br);
+            br.close();
+            is.close();
+            init(
+                    pro.getProperty("mes.server_ip", "").trim(),
+                    pro.getProperty("mes.gw", "").trim(),
+                    pro.getProperty("mes.line_sn", "").trim()
+            );
+        } catch (Exception e) {
+            log.error("初始化设备状态上报失败", e);
+        }
+    }
+
+    public void init(String serverIp, String gw, String lineSn) {
+        this.serverIp = serverIp;
+        this.gw = gw;
+        this.lineSn = lineSn;
+        log.info("设备状态上报初始化: gw={}, lineSn={}", gw, lineSn);
+    }
+
+    /**
+     * 异步上报
+     */
+    public void reportAsync(final String state, final String content) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                reportSync(state, content);
+            }
+        }, "device-state-report-thread").start();
+    }
+
+    /**
+     * 同步上报
+     */
+    public boolean reportSync(String state, String content) {
+        if (isBlank(serverIp) || isBlank(gw) || isBlank(lineSn)) {
+            log.warn("设备状态上报跳过:配置不完整 serverIp={}, gw={}, lineSn={}", serverIp, gw, lineSn);
+            return false;
+        }
+        try {
+            String url = "http://" + serverIp + ":8980/js/a/mes/mesDevice/reportState";
+            JSONObject body = new JSONObject();
+            body.put("gw", gw);
+            body.put("lineSn", lineSn);
+            body.put("state", state);
+            body.put("content", content == null ? "" : content);
+            String result = HttpUtils.sendPostRequestJson(url, body.toJSONString());
+            log.info("设备状态上报: state={}, content={}, result={}", state, content, result);
+            if (isBlank(result) || "false".equalsIgnoreCase(result)) {
+                return false;
+            }
+            JSONObject retObj = JSONObject.parseObject(result);
+            return retObj != null && "true".equalsIgnoreCase(String.valueOf(retObj.get("result")));
+        } catch (Exception e) {
+            log.error("设备状态上报异常: state={}, content={}", state, content, e);
+            return false;
+        }
+    }
+
+    private boolean isBlank(String value) {
+        return value == null || value.trim().isEmpty();
+    }
+}

+ 3 - 1
src/com/mes/ui/LoginFarme.java

@@ -172,8 +172,10 @@ public class LoginFarme extends JFrame {
                     // 获取等于所处时间-当前小时
                     LocalDateTime now = LocalDateTime.now();
                     MesClient.userLoginHours = now.getHour();
-                    //启动timer心跳包
+                    //启动timer心跳包(界面)
                     MesClient.startHeartBeatTimer();
+                    // 上报设备运行状态并启动定时上报
+                    MesClient.reportDeviceRunning();
 
                     //1操作工人,2管理员
                     //登录成功

+ 63 - 3
src/com/mes/ui/MesClient.java

@@ -3,6 +3,7 @@ package com.mes.ui;
 import com.alibaba.fastjson2.JSONObject;
 import com.mes.component.MesRadio;
 import com.mes.component.MesWebView;
+import com.mes.device.DeviceStateReporter;
 import com.mes.util.DateLocalUtils;
 import com.mes.util.HttpUtils;
 import com.mes.util.JdbcUtils;
@@ -35,6 +36,7 @@ public class MesClient extends JFrame {
     public static String mes_server_ip = ""; // 服务器IP地址
     public static int mes_heart_icon_cycle = 1;
     public static String mes_line_sn = ""; // 产线编号
+    public static int mes_device_heartbeat_minutes = 5; // 设备状态上报间隔(分钟)
 
     //session
     public static String sessionid = "";
@@ -120,12 +122,22 @@ public class MesClient extends JFrame {
         mes_server_ip = pro.getProperty("mes.server_ip");
         mes_line_sn = pro.getProperty("mes.line_sn");
         mes_gw_des = OprnoUtil.getGwDes(mes_line_sn,mes_gw);
+        try {
+            mes_device_heartbeat_minutes = Integer.parseInt(pro.getProperty("mes.device.heartbeat.minutes", "5").trim());
+        } catch (Exception e) {
+            mes_device_heartbeat_minutes = 5;
+        }
+        if (mes_device_heartbeat_minutes <= 0) {
+            mes_device_heartbeat_minutes = 5;
+        }
         log.info(mes_gw + ";" + mes_gw_des + ";" + mes_server_ip + ";");
     }
 
-    //启动心跳包程序
+    //启动心跳包程序(界面图标闪烁)
     public static java.util.Timer heartBeatTimer;
     public static java.util.Timer heartBeatIconTimer;
+    // 设备状态定时上报
+    public static java.util.Timer deviceReportTimer;
     public static boolean iconREDFlag = true;
     public static void startHeartBeatTimer() {
         if(heartBeatTimer!=null) {
@@ -152,6 +164,49 @@ public class MesClient extends JFrame {
         }, 100,mes_heart_icon_cycle*1000);
     }
 
+    /**
+     * 启动设备状态定时上报
+     */
+    public static void startDeviceReportTimer() {
+        stopDeviceReportTimer();
+        long intervalMs = mes_device_heartbeat_minutes * 60L * 1000L;
+        deviceReportTimer = new Timer("device-report-timer", true);
+        deviceReportTimer.schedule(new TimerTask() {
+            @Override
+            public void run() {
+                DeviceStateReporter.getInstance().reportAsync(DeviceStateReporter.STATE_RUNNING, "运行心跳");
+            }
+        }, intervalMs, intervalMs);
+        log.info("设备状态定时上报已启动,间隔 {} 分钟", mes_device_heartbeat_minutes);
+    }
+
+    /**
+     * 停止设备状态定时上报
+     */
+    public static void stopDeviceReportTimer() {
+        if (deviceReportTimer != null) {
+            deviceReportTimer.cancel();
+            deviceReportTimer = null;
+        }
+    }
+
+    /**
+     * 登录成功后上报设备运行状态
+     */
+    public static void reportDeviceRunning() {
+        DeviceStateReporter.getInstance().init(mes_server_ip, mes_gw, mes_line_sn);
+        DeviceStateReporter.getInstance().reportAsync(DeviceStateReporter.STATE_RUNNING, "工位登录,开始运行");
+        startDeviceReportTimer();
+    }
+
+    /**
+     * 退出时停止上报并发送停止状态
+     */
+    public static void reportDeviceStopped() {
+        stopDeviceReportTimer();
+        DeviceStateReporter.getInstance().reportSync(DeviceStateReporter.STATE_STOP, "工位退出,停止运行");
+    }
+
     //设置tcp连接状态显示
     public static void setTcpStatus() {
         status_menu.setText("已连接MES服务器");
@@ -295,6 +350,11 @@ public class MesClient extends JFrame {
     }
 
     public static void logoff() {
+        reportDeviceStopped();
+        if (getSnBeatTimer != null) {
+            getSnBeatTimer.cancel();
+            getSnBeatTimer = null;
+        }
         welcomeWin.setVisible(true);
         mesClientFrame.setVisible(false);
     }
@@ -312,8 +372,8 @@ public class MesClient extends JFrame {
             public void windowClosing(WindowEvent e) {
                 int choice = JOptionPane.showConfirmDialog(null, "确定要关闭窗口吗?", "关闭确认", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
                 if (choice == JOptionPane.YES_OPTION) {
-                    // 如果用户点击“是”,则关闭窗口
-                    dispose(); // 释放窗口资源并关闭窗口
+                    reportDeviceStopped();
+                    dispose();
                     System.exit(0);
                 }
             }

+ 6 - 4
src/resources/config/config.properties

@@ -1,4 +1,6 @@
-mes.gw=OP040A
-#mes.server_ip=127.0.0.1
-mes.server_ip=192.168.9.180
-mes.line_sn=115XT
+mes.gw=OP030A
+mes.server_ip=127.0.0.1
+#mes.server_ip=192.168.9.180
+mes.line_sn=115XT
+# 设备状态定时上报间隔(分钟)
+mes.device.heartbeat.minutes=5

+ 24 - 0
tools/jar2exe/build-exe.bat

@@ -0,0 +1,24 @@
+@echo off
+chcp 65001 >nul
+setlocal
+
+set "SCRIPT_DIR=%~dp0"
+cd /d "%SCRIPT_DIR%"
+
+echo [jar2exe] 第 1 步:编译工具 JAR...
+call "%SCRIPT_DIR%build.bat"
+if errorlevel 1 exit /b 1
+
+echo [jar2exe] 第 2 步:生成 EXE...
+java -cp "%SCRIPT_DIR%classes" com.jar2exe.PackSelf
+if errorlevel 1 (
+    echo [jar2exe] EXE 生成失败
+    exit /b 1
+)
+
+echo.
+echo [jar2exe] 工具 EXE 已生成:
+echo   %SCRIPT_DIR%dist\jar2exe.exe
+echo.
+echo 可将 dist\jar2exe.exe 与 launch4j 目录一起分发使用。
+exit /b 0

+ 32 - 0
tools/jar2exe/build.bat

@@ -0,0 +1,32 @@
+@echo off
+chcp 65001 >nul
+setlocal EnableDelayedExpansion
+
+set "SCRIPT_DIR=%~dp0"
+set "SRC_DIR=%SCRIPT_DIR%src"
+set "OUT_DIR=%SCRIPT_DIR%classes"
+set "DIST_DIR=%SCRIPT_DIR%dist"
+
+if not exist "%OUT_DIR%" mkdir "%OUT_DIR%"
+if not exist "%DIST_DIR%" mkdir "%DIST_DIR%"
+
+echo [jar2exe] 正在编译...
+for %%f in ("%SRC_DIR%\com\jar2exe\*.java") do set "JAVA_FILES=!JAVA_FILES! "%%f""
+javac -encoding UTF-8 -d "%OUT_DIR%" !JAVA_FILES!
+if errorlevel 1 (
+    echo [jar2exe] 编译失败
+    exit /b 1
+)
+
+echo [jar2exe] 正在打包工具 JAR...
+echo Manifest-Version: 1.0> "%OUT_DIR%\MANIFEST.MF"
+echo Main-Class: com.jar2exe.Jar2ExeApp>> "%OUT_DIR%\MANIFEST.MF"
+
+jar cfm "%DIST_DIR%\jar2exe-tool.jar" "%OUT_DIR%\MANIFEST.MF" -C "%OUT_DIR%" .
+if errorlevel 1 (
+    echo [jar2exe] 打包失败
+    exit /b 1
+)
+
+echo [jar2exe] 完成: %DIST_DIR%\jar2exe-tool.jar
+exit /b 0

BIN
tools/jar2exe/dist/jar2exe-tool.jar


BIN
tools/jar2exe/dist/jar2exe.exe


+ 28 - 0
tools/jar2exe/dist/launch4j-config.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launch4jConfig>
+  <dontWrapJar>false</dontWrapJar>
+  <headerType>gui</headerType>
+  <jar>C:/work/demo/dayang/mesclient-OKNG/tools/jar2exe/dist/jar2exe-tool.jar</jar>
+  <outfile>C:/work/demo/dayang/mesclient-OKNG/tools/jar2exe/dist/jar2exe.exe</outfile>
+  <errTitle>JAR2EXE</errTitle>
+  <cmdLine></cmdLine>
+  <chdir>.</chdir>
+  <priority>normal</priority>
+  <downloadUrl>https://www.java.com/download/</downloadUrl>
+  <supportUrl></supportUrl>
+  <stayAlive>false</stayAlive>
+  <restartOnCrash>false</restartOnCrash>
+  <manifest></manifest>
+  <classPath>
+    <mainClass>com.jar2exe.Jar2ExeApp</mainClass>
+  </classPath>
+  <jre>
+    <path></path>
+    <bundledJre64Bit>false</bundledJre64Bit>
+    <bundledJreAsFallback>false</bundledJreAsFallback>
+    <minVersion>1.8.0</minVersion>
+    <maxVersion></maxVersion>
+    <jdkPreference>preferJre</jdkPreference>
+    <runtimeBits>64/32</runtimeBits>
+  </jre>
+</launch4jConfig>

BIN
tools/jar2exe/dist/release/jar2exe.exe


+ 17 - 0
tools/jar2exe/dist/release/launch4j/.classpath

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" output="demo/ExitCodeApp/build" path="demo/ExitCodeApp/src"/>
+	<classpathentry kind="src" output="demo/SimpleApp/build" path="demo/SimpleApp/src"/>
+	<classpathentry kind="src" output="demo/ConsoleApp/build" path="demo/ConsoleApp/src"/>
+	<classpathentry kind="lib" path="lib/formsrt.jar"/>
+	<classpathentry kind="lib" path="lib/xstream.jar"/>
+	<classpathentry kind="lib" path="lib/commons-beanutils.jar"/>
+	<classpathentry kind="lib" path="lib/commons-logging.jar"/>
+	<classpathentry kind="lib" path="lib/ant.jar"/>
+	<classpathentry kind="lib" path="lib/jgoodies-common.jar"/>
+	<classpathentry kind="lib" path="lib/jgoodies-forms.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="lib/flatlaf.jar"/>
+	<classpathentry kind="output" path="build"/>
+</classpath>

+ 17 - 0
tools/jar2exe/dist/release/launch4j/.project

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>launch4j</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

+ 21 - 0
tools/jar2exe/dist/release/launch4j/.vscode/c_cpp_properties.json

@@ -0,0 +1,21 @@
+{
+    "configurations": [
+        {
+            "name": "Win32",
+            "includePath": [
+                "${workspaceFolder}/**",
+                "c:\\Program Files (x86)\\Dev-Cpp\\MinGW32\\include\\**"
+            ],
+            "defines": [
+                "_DEBUG",
+                "UNICODE",
+                "_UNICODE"
+            ],
+            "cStandard": "gnu89",
+            "cppStandard": "gnu++98",
+            "intelliSenseMode": "windows-gcc-x86",
+            "compilerPath": "c:\\Program Files (x86)\\Dev-Cpp\\MinGW32\\bin\\gcc.exe"
+        }
+    ],
+    "version": 4
+}

+ 17 - 0
tools/jar2exe/dist/release/launch4j/.vscode/tasks.json

@@ -0,0 +1,17 @@
+{
+	"version": "2.0.0",
+	"tasks": [
+		{
+			"type": "make",
+			"targetName": "all",
+			"makeFileRelativePath": "head_src\\makefile",
+			"problemMatcher": [],
+			"label": "make: all",
+			"detail": "./head_src\\makefile",
+			"group": {
+				"kind": "build",
+				"isDefault": true
+			}
+		}
+	]
+}

+ 30 - 0
tools/jar2exe/dist/release/launch4j/LICENSE.txt

@@ -0,0 +1,30 @@
+Launch4j (http://launch4j.sourceforge.net/)
+Cross-platform Java application wrapper for creating Windows native executables.
+
+Copyright (c) 2004, 2021 Grzegorz Kowal
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 77 - 0
tools/jar2exe/dist/release/launch4j/build.xml

@@ -0,0 +1,77 @@
+<project name="launch4j" default="compile" basedir=".">
+	<property name="src" location="src" />
+	<property name="lib" location="lib" />
+	<property name="build" location="build" />
+	<property name="jar" location="./${ant.project.name}.jar" />
+	<property name="launch4j.dir" location="." />
+	<property name="maven" location="maven" />
+	<property file="${src}/launch4j.properties"/>
+
+	<path id="dist.classpath">
+		<pathelement path="${build}" />
+		<fileset dir="${lib}">
+			<include name="**/*.jar" />
+		</fileset>
+	</path>
+
+	<target name="init">
+		<tstamp />
+		<mkdir dir="${build}" />
+	</target>
+
+	<target name="compile" depends="init" description="compile the source">
+		<javac srcdir="${src}" destdir="${build}" classpathref="dist.classpath" source="1.8" debug="on" includeantruntime="false" />
+		<copy todir="${build}/images">
+			<fileset dir="${src}/images">
+				<include name="**/*" />
+			</fileset>
+		</copy>
+		<copy todir="${build}">
+			<fileset dir="${src}">
+				<include name="**/*.properties" />
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="jar" depends="compile" description="create jar">
+		<fileset dir="${lib}" id="lib.dist.fileset">
+			<include name="**/*.jar" />
+		</fileset>
+		<pathconvert pathsep=" " property="dist.classpath" refid="lib.dist.fileset">
+			<map from="${lib}" to="./lib" />
+		</pathconvert>
+		<!-- Put everything in ${build} into a jar file -->
+		<jar jarfile="${jar}">
+			<fileset dir="${build}" excludes="**/messages_es.properties" />
+			<manifest>
+				<attribute name="Main-Class" value="net.sf.launch4j.Main" />
+				<attribute name="Class-Path" value=". ${dist.classpath}" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="demo" depends="jar" description="build the demos">
+		<ant dir="./demo/ConsoleApp" inheritAll="false" />
+		<ant dir="./demo/SimpleApp" inheritAll="false" />
+	</target>
+
+	<target name="clean" description="clean up">
+		<delete dir="${build}" />
+		<delete file="${jar}" />
+		<ant dir="./demo/ConsoleApp" target="clean" inheritAll="false" />
+		<ant dir="./demo/SimpleApp" target="clean" inheritAll="false" />
+	</target>
+	
+	<target name="switch-to-maven" description="switch project to maven">
+		<copy todir="." overwrite="true">
+			<fileset dir="${maven}">
+				<include name="**/*" />
+			</fileset>
+		</copy>
+		<replace file="./pom.xml">
+			<replacefilter token="$${launch4j.version}" value="${version}"/>
+		</replace>
+		<delete dir="${lib}" />
+		<mkdir dir="./target" />
+	</target>
+</project>

BIN
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/ConsoleApp.exe


BIN
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/ConsoleApp.jar


+ 14 - 0
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/build.bat

@@ -0,0 +1,14 @@
+@echo off
+if "%ANT_HOME%"=="" goto noAntHome
+if "%JAVA_HOME%"=="" goto noJavaHome
+call "%ANT_HOME%\bin\ant.bat" exe
+goto end
+
+:noAntHome
+echo ANT_HOME environment variable is not set
+goto end
+
+:noJavaHome
+echo JAVA_HOME environment variable is not set
+
+:end

+ 57 - 0
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/build.xml

@@ -0,0 +1,57 @@
+<project name="ConsoleApp" default="exe" basedir=".">
+	<property name="src" location="src" />
+	<property name="lib" location="lib" />
+	<property name="build" location="build" />
+	<property name="launch4j.dir" location="../.." />
+
+	<path id="dist.classpath">
+		<pathelement path="${build}" />
+		<fileset dir="${lib}">
+			<include name="**/*.jar" />
+		</fileset>
+	</path>
+
+	<target name="init">
+		<tstamp />
+		<mkdir dir="${build}" />
+	</target>
+
+	<target name="compile" depends="init" description="compile the source">
+		<javac srcdir="${src}" destdir="${build}" classpathref="dist.classpath" source="1.8" debug="on" includeantruntime="false" />
+	</target>
+
+	<target name="jar" depends="compile" description="create the jar">
+		<fileset dir="${lib}" id="lib.dist.fileset">
+			<include name="**/*.jar" />
+		</fileset>
+		<pathconvert pathsep=" " property="dist.classpath" refid="lib.dist.fileset">
+			<map from="${lib}" to=".\lib" />
+		</pathconvert>
+		<!-- Put everything in ${build} into a jar file -->
+		<jar jarfile="${ant.project.name}.jar">
+			<fileset dir="${build}" includes="**/*" />
+			<manifest>
+				<!-- SET YOUR MAIN CLASS HERE -->
+				<attribute name="Main-Class" value="net.sf.launch4j.example.ConsoleApp" />
+				<attribute name="Class-Path" value=". ${dist.classpath}" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="exe" depends="jar">
+		<taskdef name="launch4j" classname="net.sf.launch4j.ant.Launch4jTask" classpath="${launch4j.dir}/launch4j.jar
+		    :${launch4j.dir}/lib/xstream.jar" />
+		<launch4j>
+			<config headerType="console" jarPath="ConsoleApp.jar" dontWrapJar="true" outfile="ConsoleApp.exe" errTitle="ConsoleApp" chdir="." icon="l4j/ConsoleApp.ico">
+				<singleInstance mutexName="net.sf.launch4j.example.ConsoleApp" />
+				<jre path="%JAVA_HOME%;%PATH%" minVersion="1.8.0" />
+			</config>
+		</launch4j>
+	</target>
+
+	<target name="clean" description="clean up">
+		<delete dir="${build}" />
+		<delete file="${ant.project.name}.jar" />
+		<delete file="${ant.project.name}.exe" />
+	</target>
+</project>

BIN
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/l4j/ConsoleApp.ico


+ 8 - 0
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/lib/readme.txt

@@ -0,0 +1,8 @@
+Put your jar libs here and the build script will include them
+in the classpath stored inside the jar manifest.
+In order to run your application move the output exe file from
+the dist directory to the same level as lib. 
+
+SimpleApp.exe
+lib/
+lib/xml.jar

+ 1 - 0
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/readme.txt

@@ -0,0 +1 @@
+To build the example application set JAVA_HOME and ANT_HOME environment variables.

+ 72 - 0
tools/jar2exe/dist/release/launch4j/demo/ConsoleApp/src/net/sf/launch4j/example/ConsoleApp.java

@@ -0,0 +1,72 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2015 Grzegorz Kowal
+	All rights reserved.
+
+	Redistribution and use in source and binary forms, with or without modification,
+	are permitted provided that the following conditions are met:
+	
+	1. Redistributions of source code must retain the above copyright notice,
+	   this list of conditions and the following disclaimer.
+	
+	2. Redistributions in binary form must reproduce the above copyright notice,
+	   this list of conditions and the following disclaimer in the documentation
+	   and/or other materials provided with the distribution.
+	
+	3. Neither the name of the copyright holder nor the names of its contributors
+	   may be used to endorse or promote products derived from this software without
+	   specific prior written permission.
+	
+	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+	AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+	THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+	ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+	FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+	(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+	LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+	AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+	OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+	OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package net.sf.launch4j.example;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class ConsoleApp {
+    public static void main(String[] args) {
+		StringBuffer sb = new StringBuffer("Hello World!\n\nJava version: ");
+		sb.append(System.getProperty("java.version"));
+		sb.append("\nJava home: ");
+		sb.append(System.getProperty("java.home"));
+		sb.append("\nCurrent dir: ");
+		sb.append(System.getProperty("user.dir"));
+		if (args.length > 0) {
+			sb.append("\nArgs: ");
+			for (int i = 0; i < args.length; i++) {
+				sb.append(args[i]);
+				sb.append(' ');
+			}
+		}
+		sb.append("\n\nEnter a line of text, 'quit' or Ctrl-C to stop.\n\n>");
+		System.out.print(sb.toString());
+		try {
+			BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
+			String line;
+			while ((line = is.readLine()) != null && !line.equalsIgnoreCase("quit")) {
+				System.out.print("You wrote: " + line + "\n\n>");
+			}
+			is.close();
+			System.exit(123);
+		} catch (IOException e) {
+			System.err.print(e);
+		}
+    }
+}

+ 3 - 0
tools/jar2exe/dist/release/launch4j/demo/ExitCodeApp/build.bat

@@ -0,0 +1,3 @@
+@echo off
+rem Wrap executable using the Maven plugin.
+call "c:\Program Files\apache-maven-3.2.5\bin\mvn.bat" clean package

+ 75 - 0
tools/jar2exe/dist/release/launch4j/demo/ExitCodeApp/pom.xml

@@ -0,0 +1,75 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>net.sf.launch4j.example</groupId>
+  <artifactId>ExitCodeApp</artifactId>
+  <version>1.0</version>
+  <name>ExitCodeApp</name>
+  <packaging>jar</packaging>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <resources>
+      <resource>
+        <directory>src</directory>
+        <excludes>
+          <exclude>**/*.java</exclude>
+        </excludes>
+      </resource>
+    </resources>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.1</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>com.akathist.maven.plugins.launch4j</groupId>
+        <artifactId>launch4j-maven-plugin</artifactId>
+        <version>1.7.22</version>
+        <executions>
+          <execution>
+            <id>l4j</id>
+            <phase>package</phase>
+            <goals>
+              <goal>launch4j</goal>
+            </goals>
+            <configuration>
+              <headerType>console</headerType>
+              <outfile>target/ExitCodeApp.exe</outfile>
+              <jar>target/ExitCodeApp-1.0.jar</jar>
+              <errTitle>ExitCodeApp</errTitle>
+              <classPath>
+                <mainClass>net.sf.launch4j.example.ExitCodeApp</mainClass>
+                <addDependencies>false</addDependencies>
+                <preCp>anything</preCp>
+              </classPath>
+              <jre>
+              	<path>%JAVA_HOME%;%PATH%</path>
+                <minVersion>1.8.0</minVersion>
+              </jre>
+              <versionInfo>
+                <fileVersion>1.0.0.0</fileVersion>
+                <txtFileVersion>1.0</txtFileVersion>
+                <fileDescription>Simple app for testing exit code.</fileDescription>
+                <copyright>Copyright (C) 2022 GK</copyright>
+                <productVersion>3.9.0.0</productVersion>
+                <txtProductVersion>3.9</txtProductVersion>
+                <productName>ExitCodeApp</productName>
+                <internalName>ExitCodeApp</internalName>
+                <originalFilename>ExitCodeApp.exe</originalFilename>
+              </versionInfo>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project> 

+ 47 - 0
tools/jar2exe/dist/release/launch4j/demo/ExitCodeApp/src/net/sf/launch4j/example/ExitCodeApp.java

@@ -0,0 +1,47 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2015 Grzegorz Kowal
+	All rights reserved.
+
+	Redistribution and use in source and binary forms, with or without modification,
+	are permitted provided that the following conditions are met:
+	
+	1. Redistributions of source code must retain the above copyright notice,
+	   this list of conditions and the following disclaimer.
+	
+	2. Redistributions in binary form must reproduce the above copyright notice,
+	   this list of conditions and the following disclaimer in the documentation
+	   and/or other materials provided with the distribution.
+	
+	3. Neither the name of the copyright holder nor the names of its contributors
+	   may be used to endorse or promote products derived from this software without
+	   specific prior written permission.
+	
+	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+	AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+	THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+	ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+	FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+	(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+	LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+	AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+	OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+	OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package net.sf.launch4j.example;
+
+public class ExitCodeApp {
+	public static void main(String[] args) {
+		int exitCode = 0;
+		
+		if (args.length > 0) {
+			exitCode = Integer.parseInt(args[0]);
+		}
+
+		System.out.println("Exit code: " + String.valueOf(exitCode));
+		System.exit(exitCode);
+	}
+}

+ 30 - 0
tools/jar2exe/dist/release/launch4j/demo/LICENSE.txt

@@ -0,0 +1,30 @@
+Launch4j (http://launch4j.sourceforge.net/)
+Cross-platform Java application wrapper for creating Windows native executables.
+
+Copyright (c) 2004, 2015 Grzegorz Kowal
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BIN
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/SimpleApp.exe


BIN
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/SimpleApp.jar


+ 14 - 0
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/build.bat

@@ -0,0 +1,14 @@
+@echo off
+if "%ANT_HOME%"=="" goto noAntHome
+if "%JAVA_HOME%"=="" goto noJavaHome
+call "%ANT_HOME%\bin\ant.bat" exe
+goto end
+
+:noAntHome
+echo ANT_HOME environment variable is not set
+goto end
+
+:noJavaHome
+echo JAVA_HOME environment variable is not set
+
+:end

+ 52 - 0
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/build.xml

@@ -0,0 +1,52 @@
+<project name="SimpleApp" default="exe" basedir=".">
+	<property name="src" location="src" />
+	<property name="lib" location="lib" />
+	<property name="build" location="build" />
+	<property name="launch4j.dir" location="../.." />
+
+	<path id="dist.classpath">
+		<pathelement path="${build}" />
+		<fileset dir="${lib}">
+			<include name="**/*.jar" />
+		</fileset>
+	</path>
+
+	<target name="init">
+		<tstamp />
+		<mkdir dir="${build}" />
+	</target>
+
+	<target name="compile" depends="init" description="compile the source">
+		<javac srcdir="${src}" destdir="${build}" classpathref="dist.classpath" source="1.8" debug="on" includeantruntime="false" />
+	</target>
+
+	<target name="jar" depends="compile" description="create the jar">
+		<fileset dir="${lib}" id="lib.dist.fileset">
+			<include name="**/*.jar" />
+		</fileset>
+		<pathconvert pathsep=" " property="dist.classpath" refid="lib.dist.fileset">
+			<map from="${lib}" to=".\lib" />
+		</pathconvert>
+		<!-- Put everything in ${build} into a jar file -->
+		<jar jarfile="${ant.project.name}.jar">
+			<fileset dir="${build}" includes="**/*" />
+			<manifest>
+				<!-- SET YOUR MAIN CLASS HERE -->
+				<attribute name="Main-Class" value="net.sf.launch4j.example.SimpleApp" />
+				<attribute name="Class-Path" value=". ${dist.classpath}" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="exe" depends="jar">
+		<taskdef name="launch4j" classname="net.sf.launch4j.ant.Launch4jTask" classpath="${launch4j.dir}/launch4j.jar
+		    :${launch4j.dir}/lib/xstream.jar" />
+		<launch4j configFile="./l4j/SimpleApp.xml" />
+	</target>
+
+	<target name="clean" description="clean up">
+		<delete dir="${build}" />
+		<delete file="${ant.project.name}.jar" />
+		<delete file="${ant.project.name}.exe" />
+	</target>
+</project>

BIN
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/l4j/SimpleApp.ico


+ 20 - 0
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/l4j/SimpleApp.xml

@@ -0,0 +1,20 @@
+<launch4jConfig>
+  <headerType>gui</headerType>
+  <jar>SimpleApp.jar</jar>
+  <dontWrapJar>true</dontWrapJar>
+  <outfile>../SimpleApp.exe</outfile>
+  <errTitle>SimpleApp</errTitle>
+  <chdir>.</chdir>
+  <icon>SimpleApp.ico</icon>
+  <restartOnCrash>true</restartOnCrash>
+  <jre>
+  	<path>%JAVA_HOME%;%PATH%</path>
+    <minVersion>1.8.0</minVersion>
+  </jre>
+  <splash>
+    <file>splash.bmp</file>
+    <waitForWindow>true</waitForWindow>
+    <timeout>60</timeout>
+    <timeoutErr>true</timeoutErr>
+  </splash>
+</launch4jConfig>

BIN
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/l4j/splash.bmp


+ 8 - 0
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/lib/readme.txt

@@ -0,0 +1,8 @@
+Put your jar libs here and the build script will include them
+in the classpath stored inside the jar manifest.
+In order to run your application move the output exe file from
+the dist directory to the same level as lib. 
+
+SimpleApp.exe
+lib/
+lib/xml.jar

+ 1 - 0
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/readme.txt

@@ -0,0 +1 @@
+To build the example application set JAVA_HOME and ANT_HOME environment variables.

+ 195 - 0
tools/jar2exe/dist/release/launch4j/demo/SimpleApp/src/net/sf/launch4j/example/SimpleApp.java

@@ -0,0 +1,195 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2015 Grzegorz Kowal
+	All rights reserved.
+
+	Redistribution and use in source and binary forms, with or without modification,
+	are permitted provided that the following conditions are met:
+	
+	1. Redistributions of source code must retain the above copyright notice,
+	   this list of conditions and the following disclaimer.
+	
+	2. Redistributions in binary form must reproduce the above copyright notice,
+	   this list of conditions and the following disclaimer in the documentation
+	   and/or other materials provided with the distribution.
+	
+	3. Neither the name of the copyright holder nor the names of its contributors
+	   may be used to endorse or promote products derived from this software without
+	   specific prior written permission.
+	
+	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+	AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+	THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+	ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+	FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+	(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+	LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+	AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+	OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+	OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package net.sf.launch4j.example;
+
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.swing.AbstractAction;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.UIManager;
+
+public class SimpleApp extends JFrame {
+	public SimpleApp(String[] args) {
+		super("Java Application");
+
+		if (args.length == 1 && "throw".equals(args[0])) {
+			throw new IllegalStateException("Exception thrown from SimpleApp.");
+		}
+
+		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+		setBounds (screenSize.width / 4, screenSize.height / 4, screenSize.width / 2, screenSize.height / 2);
+
+		addWindowListener(new WindowAdapter() {
+			public void windowClosing(WindowEvent e) {
+				System.exit(0);
+			}});
+
+		initializeMenu();
+		initializeTextArea(args);
+		setVisible(true);
+	}
+
+	public static void setLAF() {
+		JFrame.setDefaultLookAndFeelDecorated(true);
+		Toolkit.getDefaultToolkit().setDynamicLayout(true);
+		System.setProperty("sun.awt.noerasebackground","true");
+		try {
+			UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
+		} catch (Exception e) {
+			System.err.println("Failed to set LookAndFeel");
+		}
+	}
+
+	public static void main(String[] args) {
+		setLAF();
+		new SimpleApp(args);
+	}
+   	
+	private final void initializeMenu() {
+		JMenu menu = new JMenu("Exit with code");
+		
+		menu.add(new JMenuItem(new AbstractAction("Exit with code 0") {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				System.exit(0);
+			}
+		}));
+		
+		menu.add(new JMenuItem(new AbstractAction("Exit with code 100 and restart the application") {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				System.exit(100);
+			}
+		}));
+		
+		JMenuBar mb = new JMenuBar();
+		mb.setOpaque(true);
+		mb.add(menu);
+		setJMenuBar(mb);
+   	}
+   	
+	private final void initializeTextArea(String[] args) {
+   		JTextArea textArea = new JTextArea();
+		textArea.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));
+		textArea.setEditable(false);
+		
+		JScrollPane scrollPane = new JScrollPane();
+	    scrollPane.setViewportView(textArea);
+	    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+	    scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+	    getContentPane().add(scrollPane);
+
+		textArea.setText(getMainProperties(args));
+		textArea.append(getAllProperties());
+		textArea.append(getEnvironmentVariables());
+   	}
+
+	private final String getMainProperties(String[] args) {
+		StringBuffer sb = new StringBuffer("Java version: ");
+		sb.append(System.getProperty("java.version"));
+		sb.append("\nJava home: ");
+		sb.append(System.getProperty("java.home"));
+		sb.append("\nCurrent dir: ");
+		sb.append(System.getProperty("user.dir"));
+		sb.append("\nCommand line args: {");
+
+		for (int i = 0; i < args.length; i++) {
+			if (i > 0)
+			{
+				sb.append(' ');
+			}
+			sb.append(args[i]);
+		}
+
+		sb.append("}\n");
+		
+		final int mb = 1024 * 1024;
+		sb.append("Free memory (MB): ");
+		sb.append(Runtime.getRuntime().freeMemory() / mb);
+		sb.append("\nTotal memory (MB): ");
+		sb.append(Runtime.getRuntime().totalMemory() / mb);
+		sb.append("\nMax memory (MB): ");
+		sb.append(Runtime.getRuntime().maxMemory() / mb);
+		sb.append("\n");
+
+		return sb.toString();
+	}
+   	
+	private final String getAllProperties() {
+		StringBuffer sb = new StringBuffer("\n========== All properties ==========\n");
+
+		List<String> keys = new ArrayList<String>();
+		keys.addAll(System.getProperties().stringPropertyNames());
+		Collections.sort(keys);
+
+		for (String key : keys) {
+			sb.append(key);
+			sb.append(": ");
+			sb.append(System.getProperty(key));
+			sb.append("\n");
+		}
+
+		return sb.toString();
+	}
+	
+	private final String getEnvironmentVariables() {
+		StringBuffer sb = new StringBuffer("\n========== Environment variables ==========\n");
+
+		List<String> keys = new ArrayList<String>();
+		keys.addAll(System.getenv().keySet());
+		Collections.sort(keys);
+
+		for (String key : keys) {
+			sb.append(key);
+			sb.append(": ");
+			sb.append(System.getenv(key));
+			sb.append("\n");
+		}
+
+		return sb.toString();
+	}
+}

+ 3 - 0
tools/jar2exe/dist/release/launch4j/demo/readme.txt

@@ -0,0 +1,3 @@
+JRE/SDK 1.6.0 or higher must be installed on your system to run this demo.
+
+try running it with some command line arguments...

+ 26 - 0
tools/jar2exe/dist/release/launch4j/head/LICENSE.txt

@@ -0,0 +1,26 @@
+Launch4j (http://launch4j.sourceforge.net/)
+Cross-platform Java application wrapper for creating Windows native executables.
+
+Copyright (c) 2004, 2015 Grzegorz Kowal
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Except as contained in this notice, the name(s) of the above copyright holders
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

BIN
tools/jar2exe/dist/release/launch4j/head/consolehead.o


BIN
tools/jar2exe/dist/release/launch4j/head/guihead.o


BIN
tools/jar2exe/dist/release/launch4j/head/head.o


+ 26 - 0
tools/jar2exe/dist/release/launch4j/head_jni_BETA/LICENSE.txt

@@ -0,0 +1,26 @@
+Launch4j (http://launch4j.sourceforge.net/)
+Cross-platform Java application wrapper for creating Windows native executables.
+
+Copyright (c) 2004, 2015 Grzegorz Kowal
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Except as contained in this notice, the name(s) of the above copyright holders
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

BIN
tools/jar2exe/dist/release/launch4j/head_jni_BETA/head.o


BIN
tools/jar2exe/dist/release/launch4j/head_jni_BETA/jniconsolehead.o


BIN
tools/jar2exe/dist/release/launch4j/head_jni_BETA/jniguihead.o


BIN
tools/jar2exe/dist/release/launch4j/head_jni_BETA/jnihead.o


+ 26 - 0
tools/jar2exe/dist/release/launch4j/head_src/LICENSE.txt

@@ -0,0 +1,26 @@
+Launch4j (http://launch4j.sourceforge.net/)
+Cross-platform Java application wrapper for creating Windows native executables.
+
+Copyright (c) 2004, 2015 Grzegorz Kowal
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Except as contained in this notice, the name(s) of the above copyright holders
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

+ 31 - 0
tools/jar2exe/dist/release/launch4j/head_src/consolehead/Makefile.win

@@ -0,0 +1,31 @@
+# Project: consolehead
+# Makefile created by Dev-C++ 5.7.1
+
+CPP      = g++.exe
+CC       = gcc.exe
+WINDRES  = windres.exe
+OBJ      = ../../head/consolehead.o ../../head/head.o
+LINKOBJ  = ../../head/consolehead.o ../../head/head.o
+LIBS     = -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/lib" -static-libstdc++ -static-libgcc -n -s
+INCS     = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include"
+CXXINCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include/c++"
+BIN      = consolehead.exe
+CXXFLAGS = $(CXXINCS) -Os
+CFLAGS   = $(INCS) -Os
+RM       = rm.exe -f
+
+.PHONY: all all-before all-after clean clean-custom
+
+all: all-before $(BIN) all-after
+
+clean: clean-custom
+	${RM} $(OBJ) $(BIN)
+
+$(BIN): $(OBJ)
+	$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
+
+../../head/consolehead.o: consolehead.c
+	$(CC) -c consolehead.c -o ../../head/consolehead.o $(CFLAGS)
+
+../../head/head.o: ../head.c
+	$(CC) -c ../head.c -o ../../head/head.o $(CFLAGS)

+ 97 - 0
tools/jar2exe/dist/release/launch4j/head_src/consolehead/consolehead.c

@@ -0,0 +1,97 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2007 Grzegorz Kowal
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#include "../resource.h"
+#include "../head.h"
+
+extern FILE* hLog;
+
+BOOL restartOnCrash = FALSE;
+
+int main(int argc, char* argv[])
+{
+    setConsoleFlag();
+	LPTSTR cmdLine = GetCommandLine();
+
+	if (*cmdLine == '"')
+	{
+		if (*(cmdLine = strchr(cmdLine + 1, '"') + 1))
+		{
+			cmdLine++;
+		}
+	}
+	else if ((cmdLine = strchr(cmdLine, ' ')) != NULL)
+	{
+		cmdLine++;
+	}
+	else
+	{
+		cmdLine = "";
+	}
+
+	int result = prepare(cmdLine, FALSE);
+
+	if (result == ERROR_ALREADY_EXISTS)
+	{
+		char errMsg[BIG_STR] = {0};
+		loadString(INSTANCE_ALREADY_EXISTS_MSG, errMsg);
+		msgBox(errMsg);
+		closeLogFile();
+		return 2;
+	}
+
+	if (result != TRUE)
+	{
+		signalError();
+		return 1;
+	}
+
+	restartOnCrash = loadBool(RESTART_ON_CRASH);
+	DWORD dwExitCode;
+
+	do
+	{
+		dwExitCode = 0;
+	
+		if (!execute(TRUE, &dwExitCode))
+		{
+			signalError();
+			break;
+		}
+
+		if (restartOnCrash && dwExitCode != 0)
+		{
+	  		debug("Exit code:\t%d, restarting the application!\n", dwExitCode);
+  		}
+	} while (restartOnCrash && dwExitCode != 0);
+
+	debug("Exit code:\t%d\n", dwExitCode);
+	closeLogFile();
+	return (int) dwExitCode;
+}

+ 111 - 0
tools/jar2exe/dist/release/launch4j/head_src/consolehead/consolehead.dev

@@ -0,0 +1,111 @@
+[Project]
+FileName=consolehead.dev
+Name=consolehead
+UnitCount=4
+Type=1
+Ver=2
+ObjFiles=
+Includes=
+Libs=
+PrivateResource=
+ResourceIncludes=
+MakeIncludes=
+Compiler=
+CppCompiler=
+Linker=-n_@@_
+IsCpp=0
+Icon=
+ExeOutput=
+ObjectOutput=..\..\head
+OverrideOutput=0
+OverrideOutputName=consolehead.exe
+HostApplication=
+Folders=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=Makefile.win
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=000000d000000000000001000
+LogOutput=
+LogOutputEnabled=0
+
+[Unit1]
+FileName=consolehead.c
+CompileCpp=0
+Folder=consolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=0.1.1.1
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=
+AutoIncBuildNr=0
+SyncProduct=0
+
+[Unit2]
+FileName=..\resource.h
+CompileCpp=0
+Folder=consolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=..\head.c
+CompileCpp=0
+Folder=consolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit4]
+FileName=..\head.h
+CompileCpp=0
+Folder=consolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit5]
+FileName=..\head.rc
+Folder=consolehead
+Compile=1
+Link=0
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit6]
+FileName=..\resid.h
+CompileCpp=0
+Folder=consolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+

+ 31 - 0
tools/jar2exe/dist/release/launch4j/head_src/guihead/Makefile.win

@@ -0,0 +1,31 @@
+# Project: guihead
+# Makefile created by Dev-C++ 5.7.1
+
+CPP      = g++.exe
+CC       = gcc.exe
+WINDRES  = windres.exe
+OBJ      = ../../head/guihead.o ../../head/head.o
+LINKOBJ  = ../../head/guihead.o ../../head/head.o
+LIBS     = -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/lib" -static-libstdc++ -static-libgcc -mwindows -n -s
+INCS     = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include"
+CXXINCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include/c++"
+BIN      = guihead.exe
+CXXFLAGS = $(CXXINCS) -Os
+CFLAGS   = $(INCS) -Os
+RM       = rm.exe -f
+
+.PHONY: all all-before all-after clean clean-custom
+
+all: all-before $(BIN) all-after
+
+clean: clean-custom
+	${RM} $(OBJ) $(BIN)
+
+$(BIN): $(OBJ)
+	$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
+
+../../head/guihead.o: guihead.c
+	$(CC) -c guihead.c -o ../../head/guihead.o $(CFLAGS)
+
+../../head/head.o: ../head.c
+	$(CC) -c ../head.c -o ../../head/head.o $(CFLAGS)

+ 241 - 0
tools/jar2exe/dist/release/launch4j/head_src/guihead/guihead.c

@@ -0,0 +1,241 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2015 Grzegorz Kowal
+							 Sylvain Mina (single instance patch)
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#include "../resource.h"
+#include "../head.h"
+#include "guihead.h"
+
+extern FILE* hLog;
+extern PROCESS_INFORMATION processInformation;
+
+HWND hWnd;
+DWORD dwExitCode = 0;
+BOOL stayAlive = FALSE;
+BOOL splash = FALSE;
+BOOL splashTimeoutErr;
+BOOL waitForWindow;
+BOOL restartOnCrash = FALSE;
+int splashTimeout = DEFAULT_SPLASH_TIMEOUT;
+
+int APIENTRY WinMain(HINSTANCE hInstance,
+                     HINSTANCE hPrevInstance,
+                     LPSTR     lpCmdLine,
+                     int       nCmdShow)
+{
+	int result = prepare(lpCmdLine, FALSE);
+
+	if (result == ERROR_ALREADY_EXISTS)
+	{
+		HWND handle = getInstanceWindow();
+		ShowWindow(handle, SW_SHOW);
+		SetForegroundWindow(handle);
+		closeLogFile();
+		return 2;
+	}
+
+	if (result != TRUE)
+	{
+		signalError();
+		return 1;
+	}
+
+	splash = loadBool(SHOW_SPLASH)
+			&& strstr(lpCmdLine, "--l4j-no-splash") == NULL;
+	restartOnCrash = loadBool(RESTART_ON_CRASH);
+
+	// if we should restart on crash, we must also stay alive to check for crashes
+	stayAlive = restartOnCrash ||
+			  (loadBool(GUI_HEADER_STAYS_ALIVE)
+			&& strstr(lpCmdLine, "--l4j-dont-wait") == NULL);
+			
+	if (splash || stayAlive)
+	{
+		hWnd = CreateWindowEx(WS_EX_TOOLWINDOW, "STATIC", "",
+				WS_POPUP | SS_BITMAP,
+				0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
+		if (splash)
+		{
+			char timeout[10] = {0};
+			if (loadString(SPLASH_TIMEOUT, timeout))
+			{
+				splashTimeout = atoi(timeout);
+				if (splashTimeout <= 0 || splashTimeout > MAX_SPLASH_TIMEOUT)
+				{
+					splashTimeout = DEFAULT_SPLASH_TIMEOUT;
+				}
+			}
+			splashTimeout = splashTimeout * 1000; // to millis
+			splashTimeoutErr = loadBool(SPLASH_TIMEOUT_ERR)
+					&& strstr(lpCmdLine, "--l4j-no-splash-err") == NULL;
+			waitForWindow = loadBool(SPLASH_WAITS_FOR_WINDOW);
+			HANDLE hImage = LoadImage(hInstance,	// handle of the instance containing the image
+					MAKEINTRESOURCE(SPLASH_BITMAP),	// name or identifier of image
+					IMAGE_BITMAP,					// type of image
+					0,								// desired width
+					0,								// desired height
+					LR_DEFAULTSIZE);
+			if (hImage == NULL)
+			{
+				signalError();
+				return 1;
+			}
+			SendMessage(hWnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hImage);
+			RECT rect;
+			GetWindowRect(hWnd, &rect);
+			int x = (GetSystemMetrics(SM_CXSCREEN) - (rect.right - rect.left)) / 2;
+			int y = (GetSystemMetrics(SM_CYSCREEN) - (rect.bottom - rect.top)) / 2;
+			SetWindowPos(hWnd, HWND_TOP, x, y, 0, 0, SWP_NOSIZE);
+			ShowWindow(hWnd, nCmdShow);
+			UpdateWindow (hWnd);
+		}
+	}
+
+	do
+	{
+		if (splash || stayAlive)
+		{
+			if (!SetTimer (hWnd, ID_TIMER, TIMER_PROC_INTERVAL, TimerProc))
+			{
+				signalError();
+				return 1;
+			}
+		}
+
+		if (!execute(FALSE, &dwExitCode))
+		{
+			signalError();
+			return 1;
+		}
+
+		if (!(splash || stayAlive))
+		{
+			debug("Exit code:\t0\n");
+			closeProcessHandles();
+			closeLogFile();
+			return 0;
+		}
+	
+		MSG msg;
+		while (GetMessage(&msg, NULL, 0, 0))
+		{
+			TranslateMessage(&msg);
+			DispatchMessage(&msg);
+		}
+		
+		if (restartOnCrash && dwExitCode != 0)
+		{
+	  		debug("Exit code:\t%d, restarting the application!\n", dwExitCode);
+  		}
+
+  		closeProcessHandles();
+	} while (restartOnCrash && dwExitCode != 0);
+
+	debug("Exit code:\t%d\n", dwExitCode);
+	closeLogFile();
+	return dwExitCode;
+}
+
+HWND getInstanceWindow()
+{
+	char windowTitle[STR];
+	char instWindowTitle[STR] = {0};
+	if (loadString(INSTANCE_WINDOW_TITLE, instWindowTitle))
+	{
+		HWND handle = FindWindowEx(NULL, NULL, NULL, NULL); 
+		while (handle != NULL)
+		{
+			GetWindowText(handle, windowTitle, STR - 1);
+			if (strstr(windowTitle, instWindowTitle) != NULL)
+			{
+				return handle;
+			}
+			else
+			{
+				handle = FindWindowEx(NULL, handle, NULL, NULL);
+			}
+		}
+	}
+	return NULL;   
+}
+
+BOOL CALLBACK enumwndfn(HWND hwnd, LPARAM lParam)
+{
+	DWORD processId;
+	GetWindowThreadProcessId(hwnd, &processId);
+	if (processInformation.dwProcessId == processId)
+	{
+		LONG styles = GetWindowLong(hwnd, GWL_STYLE);
+		if ((styles & WS_VISIBLE) != 0)
+		{
+			splash = FALSE;
+			ShowWindow(hWnd, SW_HIDE);
+			return FALSE;
+		}
+	}
+	return TRUE;
+}
+
+VOID CALLBACK TimerProc(
+	HWND hwnd,			// handle of window for timer messages
+	UINT uMsg,			// WM_TIMER message
+	UINT idEvent,		// timer identifier
+	DWORD dwTime) 		// current system time
+{
+	if (splash)
+	{
+		if (splashTimeout == 0)
+		{
+			splash = FALSE;
+			ShowWindow(hWnd, SW_HIDE);
+			if (waitForWindow && splashTimeoutErr)
+			{
+				KillTimer(hwnd, ID_TIMER);
+				signalError();
+				PostQuitMessage(0);
+			}
+		}
+		else
+		{
+			splashTimeout -= TIMER_PROC_INTERVAL;
+			if (waitForWindow)
+			{
+				EnumWindows(enumwndfn, 0);
+			}
+		}
+	}
+
+	GetExitCodeProcess(processInformation.hProcess, &dwExitCode);
+	if (dwExitCode != STILL_ACTIVE
+			|| !(splash || stayAlive))
+	{
+		KillTimer(hWnd, ID_TIMER);
+		PostQuitMessage(0);
+	}
+}

+ 112 - 0
tools/jar2exe/dist/release/launch4j/head_src/guihead/guihead.dev

@@ -0,0 +1,112 @@
+[Project]
+FileName=guihead.dev
+Name=guihead
+UnitCount=5
+Type=0
+Ver=2
+ObjFiles=
+Includes=
+Libs=
+PrivateResource=
+ResourceIncludes=
+MakeIncludes=
+Compiler=
+CppCompiler=
+Linker=-n_@@_
+IsCpp=0
+Icon=
+ExeOutput=
+ObjectOutput=..\..\head
+OverrideOutput=0
+OverrideOutputName=guihead.exe
+HostApplication=
+Folders=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=Makefile.win
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=000000d000000000000001000
+LogOutput=
+LogOutputEnabled=0
+
+[Unit1]
+FileName=guihead.c
+CompileCpp=0
+Folder=guihead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c guihead.c -o ../../head/guihead.o $(CFLAGS)
+
+[Unit2]
+FileName=guihead.h
+CompileCpp=0
+Folder=guihead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=
+AutoIncBuildNr=0
+SyncProduct=0
+
+[Unit4]
+FileName=..\head.h
+CompileCpp=0
+Folder=guihead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit6]
+FileName=..\resid.h
+CompileCpp=0
+Folder=guihead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=..\head.c
+CompileCpp=0
+Folder=guihead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c head.c -o ../../head/head.o $(CFLAGS)
+
+[Unit5]
+FileName=..\resource.h
+CompileCpp=0
+Folder=guihead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+

+ 44 - 0
tools/jar2exe/dist/release/launch4j/head_src/guihead/guihead.h

@@ -0,0 +1,44 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2007 Grzegorz Kowal
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#define ID_TIMER 1
+#define DEFAULT_SPLASH_TIMEOUT	60			/* 60 seconds */
+#define MAX_SPLASH_TIMEOUT		60 * 15		/* 15 minutes */
+#define TIMER_PROC_INTERVAL	100			/* interval in ms between calls to EnumWindows */
+
+HWND getInstanceWindow();
+
+BOOL CALLBACK enumwndfn(HWND hwnd, LPARAM lParam);
+
+VOID CALLBACK TimerProc(
+  HWND hwnd,     // handle of window for timer messages
+  UINT uMsg,     // WM_TIMER message
+  UINT idEvent,  // timer identifier
+  DWORD dwTime   // current system time
+);

Файловите разлики са ограничени, защото са твърде много
+ 1452 - 0
tools/jar2exe/dist/release/launch4j/head_src/head.c


+ 136 - 0
tools/jar2exe/dist/release/launch4j/head_src/head.h

@@ -0,0 +1,136 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2015 Grzegorz Kowal,
+							 Ian Roberts (jdk preference patch)
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0501
+#endif // _WIN32_WINNT
+
+#ifndef _LAUNCH4J_HEAD__INCLUDED_
+#define _LAUNCH4J_HEAD__INCLUDED_
+
+#define WIN32_LEAN_AND_MEAN		// VC - Exclude rarely-used stuff from Windows headers
+
+// Windows Header Files:
+#include <windows.h>
+
+// C RunTime Header Files
+#include <stdlib.h>
+#include <malloc.h>
+#include <memory.h>
+#include <tchar.h>
+#include <shellapi.h>
+#include <direct.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <io.h>
+#include <process.h>
+
+#define LAUNCH4j "Launch4j"
+#define VERSION "3.50"
+
+#define JRE_VER_MAX_DIGITS_PER_PART 3
+
+#define JAVA_NOT_FOUND 0
+#define JAVA_FOUND 1
+
+#define KEY_WOW64_64KEY 0x0100
+
+#define HKEY_STR "HKEY"
+#define HKEY_CLASSES_ROOT_STR "HKEY_CLASSES_ROOT"
+#define HKEY_CURRENT_USER_STR "HKEY_CURRENT_USER"
+#define HKEY_LOCAL_MACHINE_STR "HKEY_LOCAL_MACHINE"
+#define HKEY_USERS_STR "HKEY_USERS"
+#define HKEY_CURRENT_CONFIG_STR "HKEY_CURRENT_CONFIG"
+
+#define STR 128
+#define BIG_STR 1024
+#define MAX_VAR_SIZE 32767
+#define MAX_ARGS 32768
+
+#define TRUE_STR "true"
+#define FALSE_STR "false"
+
+#define ERROR_FORMAT "Error:\t\t%s\n"
+#define debug(args...) if (hLog != NULL) fprintf(hLog, ## args);
+#define debugAll(args...) if (debugAll && hLog != NULL) fprintf(hLog, ## args);
+
+typedef void (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
+
+BOOL initGlobals(BOOL jni);
+FILE* openLogFile(const char* exePath, const int pathLen);
+void closeLogFile();
+BOOL initializeLogging(const char *lpCmdLine, const char* exePath, const int pathLen);
+void msgBox(const char* text);
+void signalError();
+BOOL loadString(const int resID, char* buffer);
+BOOL loadBool(const int resID);
+int loadInt(const int resID);
+BOOL regQueryValue(const char* regPath, unsigned char* buffer,
+		unsigned long bufferLength);
+void formatJavaVersion(char* version, const char* originalVersion);
+void regSearch(const char* keyName, const int searchType);
+BOOL isRegistryJavaHomeValid(const char* keyName, const int searchType);
+BOOL isLauncherPathValid(const char* path);
+void regSearchWow(const char* keyName);
+BOOL findRegistryJavaHome(char* path);
+int getExePath(char* exePath);
+void appendPath(char* basepath, const char* path);
+void appendLauncher(char* jrePath);
+void appendAppClasspath(char* dst, const char* src);
+BOOL expandVars(char *dst, const char *src, const char *exePath, const int pathLen);
+void appendHeapSizes(char *dst);
+void appendHeapSize(char *dst, const int megabytesID, const int percentID,
+		const DWORDLONG availableMemory, const char *option);
+void setJvmOptions(char *jvmOptions, const char *exePath);
+BOOL createMutex();
+void setWorkingDirectory(const char *exePath, const int pathLen);
+void removeChar(char *src, const char toRemove);
+BOOL pathJreSearch(const char *exePath, const int pathLen);
+BOOL registryJreSearch();
+void createJreSearchError();
+BOOL jreSearch(const char *exePath, const int pathLen);
+BOOL appendToPathVar(const char* path);
+BOOL appendJreBinToPathVar();
+void setEnvironmentVariables(const char *exePath, const int pathLen);
+void setMainClassAndClassPath(const char *exePath, const int pathLen);
+void setCommandLineArgs(const char *lpCmdLine);
+int prepare(const char *lpCmdLine, BOOL jni);
+void closeProcessHandles();
+BOOL execute(const BOOL wait, DWORD *dwExitCode);
+const char* getJavaHome();
+const char* getMainClass();
+const char* getLauncherArgs();
+void getVersionFromOutput(HANDLE outputRd, char *version, int versionLen, BOOL *is64Bit);
+BOOL CreateChildProcess(char *cmdline, HANDLE outputWr);
+BOOL isJavaVersionGood(const char* version, BOOL is64Bit);
+BOOL isJavaPathVersionGood(const char *path, BOOL *is64Bit);
+
+#endif // _LAUNCH4J_HEAD__INCLUDED_

+ 34 - 0
tools/jar2exe/dist/release/launch4j/head_src/jniconsolehead_BETA/Makefile.win

@@ -0,0 +1,34 @@
+# Project: jniconsolehead
+# Makefile created by Dev-C++ 5.7.1
+
+CPP      = g++.exe
+CC       = gcc.exe
+WINDRES  = windres.exe
+OBJ      = ../../head_jni_BETA/jniconsolehead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o
+LINKOBJ  = ../../head_jni_BETA/jniconsolehead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o
+LIBS     = -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/lib" -static-libstdc++ -static-libgcc -n -s
+INCS     = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include/win32"
+CXXINCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include/c++" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include/win32"
+BIN      = jniconsolehead.exe
+CXXFLAGS = $(CXXINCS) -Os
+CFLAGS   = $(INCS) -Os
+RM       = rm.exe -f
+
+.PHONY: all all-before all-after clean clean-custom
+
+all: all-before $(BIN) all-after
+
+clean: clean-custom
+	${RM} $(OBJ) $(BIN)
+
+$(BIN): $(OBJ)
+	$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
+
+../../head_jni_BETA/jniconsolehead.o: jniconsolehead.c
+	$(CC) -c jniconsolehead.c -o ../../head_jni_BETA/jniconsolehead.o $(CFLAGS)
+
+../../head_jni_BETA/head.o: ../head.c
+	$(CC) -c ../head.c -o ../../head_jni_BETA/head.o $(CFLAGS)
+
+../../head_jni_BETA/jnihead.o: ../jnihead.c
+	$(CC) -c ../jnihead.c -o ../../head_jni_BETA/jnihead.o $(CFLAGS)

+ 99 - 0
tools/jar2exe/dist/release/launch4j/head_src/jniconsolehead_BETA/jniconsolehead.c

@@ -0,0 +1,99 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2007 Grzegorz Kowal
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#include "../resource.h"
+#include "../head.h"
+#include "../jnihead.h"
+
+extern FILE* hLog;
+
+BOOL restartOnCrash = FALSE;
+
+int main(int argc, char* argv[])
+{
+    setConsoleFlag();
+	LPTSTR cmdLine = GetCommandLine();
+
+	if (*cmdLine == '"')
+	{
+		if (*(cmdLine = strchr(cmdLine + 1, '"') + 1))
+		{
+			cmdLine++;
+		}
+	}
+	else if ((cmdLine = strchr(cmdLine, ' ')) != NULL)
+	{
+		cmdLine++;
+	}
+	else
+	{
+		cmdLine = "";
+	}
+
+	int result = prepare(cmdLine, TRUE);
+
+	if (result == ERROR_ALREADY_EXISTS)
+	{
+		char errMsg[BIG_STR] = {0};
+		loadString(INSTANCE_ALREADY_EXISTS_MSG, errMsg);
+		msgBox(errMsg);
+		closeLogFile();
+		return 2;
+	}
+
+	if (result != TRUE)
+	{
+		signalError();
+		return 1;
+	}
+
+	restartOnCrash = loadBool(RESTART_ON_CRASH);
+	DWORD dwExitCode;
+
+	do
+	{
+		dwExitCode = 0;
+		saveJvmOptions(getJavaHome(), getMainClass(), getLauncherArgs());
+
+		if (!executeVm(&dwExitCode))
+		{
+			signalError();
+			break;
+		}
+
+		if (restartOnCrash && dwExitCode != 0)
+		{
+	  		debug("Exit code:\t%d, restarting the application!\n", dwExitCode);
+  		}
+	} while (restartOnCrash && dwExitCode != 0);
+
+	debug("Exit code:\t%d\n", dwExitCode);
+	closeLogFile();
+	return (int) dwExitCode;
+}

+ 112 - 0
tools/jar2exe/dist/release/launch4j/head_src/jniconsolehead_BETA/jniconsolehead.dev

@@ -0,0 +1,112 @@
+[Project]
+FileName=jniconsolehead.dev
+Name=jniconsolehead
+UnitCount=6
+Type=1
+Ver=2
+ObjFiles=
+Includes="c:\Program Files\AdoptOpenJDK\jdk-8.0.282.8-hotspot\include";"c:\Program Files\AdoptOpenJDK\jdk-8.0.282.8-hotspot\include\win32"
+Libs=
+PrivateResource=
+ResourceIncludes=
+MakeIncludes=
+Compiler=
+CppCompiler=
+Linker=-n_@@_
+IsCpp=0
+Icon=
+ExeOutput=
+ObjectOutput=..\..\head_jni_BETA
+OverrideOutput=0
+OverrideOutputName=jniconsolehead.exe
+HostApplication=
+Folders=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=Makefile.win
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=000000d000000000000001000
+LogOutput=
+LogOutputEnabled=0
+
+[Unit1]
+FileName=jniconsolehead.c
+CompileCpp=0
+Folder=jniconsolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=0.1.1.1
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=
+AutoIncBuildNr=0
+SyncProduct=0
+
+[Unit2]
+FileName=..\resource.h
+CompileCpp=0
+Folder=jniconsolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=..\head.c
+CompileCpp=0
+Folder=jniconsolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit4]
+FileName=..\head.h
+CompileCpp=0
+Folder=jniconsolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit5]
+FileName=..\jnihead.h
+Folder=jniconsolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+CompileCpp=0
+
+[Unit6]
+FileName=..\jnihead.c
+CompileCpp=0
+Folder=jniconsolehead
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+

+ 34 - 0
tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/Makefile.win

@@ -0,0 +1,34 @@
+# Project: jniguihead
+# Makefile created by Dev-C++ 5.7.1
+
+CPP      = g++.exe
+CC       = gcc.exe
+WINDRES  = windres.exe
+OBJ      = ../../head_jni_BETA/jniguihead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o
+LINKOBJ  = ../../head_jni_BETA/jniguihead.o ../../head_jni_BETA/head.o ../../head_jni_BETA/jnihead.o
+LIBS     = -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/lib" -static-libstdc++ -static-libgcc -mwindows -n -s
+INCS     = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include/win32"
+CXXINCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include/c++" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include" -I"c:/Program Files/AdoptOpenJDK/jdk-8.0.282.8-hotspot/include/win32"
+BIN      = jniguihead.exe
+CXXFLAGS = $(CXXINCS) -Os
+CFLAGS   = $(INCS) -Os
+RM       = rm.exe -f
+
+.PHONY: all all-before all-after clean clean-custom
+
+all: all-before $(BIN) all-after
+
+clean: clean-custom
+	${RM} $(OBJ) $(BIN)
+
+$(BIN): $(OBJ)
+	$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
+
+../../head_jni_BETA/jniguihead.o: jniguihead.c
+	$(CC) -c jniguihead.c -o ../../head_jni_BETA/jniguihead.o $(CFLAGS)
+
+../../head_jni_BETA/head.o: ../head.c
+	$(CC) -c ../head.c -o ../../head_jni_BETA/head.o $(CFLAGS)
+
+../../head_jni_BETA/jnihead.o: ../jnihead.c
+	$(CC) -c ../jnihead.c -o ../../head_jni_BETA/jnihead.o $(CFLAGS)

+ 244 - 0
tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/jniguihead.c

@@ -0,0 +1,244 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2015 Grzegorz Kowal
+							 Sylvain Mina (single instance patch)
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#include "../resource.h"
+#include "../head.h"
+#include "../jnihead.h"
+#include "jniguihead.h"
+
+extern FILE* hLog;
+extern PROCESS_INFORMATION processInformation;
+
+HWND hWnd;
+DWORD dwExitCode = 0;
+BOOL stayAlive = FALSE;
+BOOL splash = FALSE;
+BOOL splashTimeoutErr;
+BOOL waitForWindow;
+BOOL restartOnCrash = FALSE;
+int splashTimeout = DEFAULT_SPLASH_TIMEOUT;
+
+int APIENTRY WinMain(HINSTANCE hInstance,
+                     HINSTANCE hPrevInstance,
+                     LPSTR     lpCmdLine,
+                     int       nCmdShow)
+{
+	int result = prepare(lpCmdLine, TRUE);
+
+	if (result == ERROR_ALREADY_EXISTS)
+	{
+		HWND handle = getInstanceWindow();
+		ShowWindow(handle, SW_SHOW);
+		SetForegroundWindow(handle);
+		closeLogFile();
+		return 2;
+	}
+
+	if (result != TRUE)
+	{
+		signalError();
+		return 1;
+	}
+
+	splash = loadBool(SHOW_SPLASH)
+			&& strstr(lpCmdLine, "--l4j-no-splash") == NULL;
+	restartOnCrash = loadBool(RESTART_ON_CRASH);
+
+	// if we should restart on crash, we must also stay alive to check for crashes
+	stayAlive = restartOnCrash ||
+			  (loadBool(GUI_HEADER_STAYS_ALIVE)
+			&& strstr(lpCmdLine, "--l4j-dont-wait") == NULL);
+			
+	if (splash || stayAlive)
+	{
+		hWnd = CreateWindowEx(WS_EX_TOOLWINDOW, "STATIC", "",
+				WS_POPUP | SS_BITMAP,
+				0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
+		if (splash)
+		{
+			char timeout[10] = {0};
+			if (loadString(SPLASH_TIMEOUT, timeout))
+			{
+				splashTimeout = atoi(timeout);
+				if (splashTimeout <= 0 || splashTimeout > MAX_SPLASH_TIMEOUT)
+				{
+					splashTimeout = DEFAULT_SPLASH_TIMEOUT;
+				}
+			}
+			splashTimeoutErr = loadBool(SPLASH_TIMEOUT_ERR)
+					&& strstr(lpCmdLine, "--l4j-no-splash-err") == NULL;
+			waitForWindow = loadBool(SPLASH_WAITS_FOR_WINDOW);
+			HANDLE hImage = LoadImage(hInstance,	// handle of the instance containing the image
+					MAKEINTRESOURCE(SPLASH_BITMAP),	// name or identifier of image
+					IMAGE_BITMAP,					// type of image
+					0,								// desired width
+					0,								// desired height
+					LR_DEFAULTSIZE);
+			if (hImage == NULL)
+			{
+				signalError();
+				return 1;
+			}
+			SendMessage(hWnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hImage);
+			RECT rect;
+			GetWindowRect(hWnd, &rect);
+			int x = (GetSystemMetrics(SM_CXSCREEN) - (rect.right - rect.left)) / 2;
+			int y = (GetSystemMetrics(SM_CYSCREEN) - (rect.bottom - rect.top)) / 2;
+			SetWindowPos(hWnd, HWND_TOP, x, y, 0, 0, SWP_NOSIZE);
+			ShowWindow(hWnd, nCmdShow);
+			UpdateWindow (hWnd);
+		}
+	}
+
+	do
+	{
+		if (splash || stayAlive)
+		{
+			if (!SetTimer (hWnd, ID_TIMER, 1000 /* 1s */, TimerProc))
+			{
+				signalError();
+				return 1;
+			}
+		}
+
+		debug(getJavaHome());
+		saveJvmOptions(getJavaHome(), getMainClass(), getLauncherArgs());
+
+		if (!executeVm(&dwExitCode))
+		{
+			signalError();
+			return 1;
+		}
+
+		if (!(splash || stayAlive))
+		{
+			debug("Exit code:\t0\n");
+			closeProcessHandles();
+			closeLogFile();
+			return 0;
+		}
+	
+		MSG msg;
+		while (GetMessage(&msg, NULL, 0, 0))
+		{
+			TranslateMessage(&msg);
+			DispatchMessage(&msg);
+		}
+		
+		if (restartOnCrash && dwExitCode != 0)
+		{
+	  		debug("Exit code:\t%d, restarting the application!\n", dwExitCode);
+  		}
+
+  		closeProcessHandles();
+	} while (restartOnCrash && dwExitCode != 0);
+
+	debug("Exit code:\t%d\n", dwExitCode);
+	closeLogFile();
+	return dwExitCode;
+}
+
+HWND getInstanceWindow()
+{
+	char windowTitle[STR];
+	char instWindowTitle[STR] = {0};
+	if (loadString(INSTANCE_WINDOW_TITLE, instWindowTitle))
+	{
+		HWND handle = FindWindowEx(NULL, NULL, NULL, NULL); 
+		while (handle != NULL)
+		{
+			GetWindowText(handle, windowTitle, STR - 1);
+			if (strstr(windowTitle, instWindowTitle) != NULL)
+			{
+				return handle;
+			}
+			else
+			{
+				handle = FindWindowEx(NULL, handle, NULL, NULL);
+			}
+		}
+	}
+	return NULL;   
+}
+
+BOOL CALLBACK enumwndfn(HWND hwnd, LPARAM lParam)
+{
+	DWORD processId;
+	GetWindowThreadProcessId(hwnd, &processId);
+	if (processInformation.dwProcessId == processId)
+	{
+		LONG styles = GetWindowLong(hwnd, GWL_STYLE);
+		if ((styles & WS_VISIBLE) != 0)
+		{
+			splash = FALSE;
+			ShowWindow(hWnd, SW_HIDE);
+			return FALSE;
+		}
+	}
+	return TRUE;
+}
+
+VOID CALLBACK TimerProc(
+	HWND hwnd,			// handle of window for timer messages
+	UINT uMsg,			// WM_TIMER message
+	UINT idEvent,		// timer identifier
+	DWORD dwTime) 		// current system time
+{
+	if (splash)
+	{
+		if (splashTimeout == 0)
+		{
+			splash = FALSE;
+			ShowWindow(hWnd, SW_HIDE);
+			if (waitForWindow && splashTimeoutErr)
+			{
+				KillTimer(hwnd, ID_TIMER);
+				signalError();
+				PostQuitMessage(0);
+			}
+		}
+		else
+		{
+			splashTimeout--;
+			if (waitForWindow)
+			{
+				EnumWindows(enumwndfn, 0);
+			}
+		}
+	}
+
+	GetExitCodeProcess(processInformation.hProcess, &dwExitCode);
+	if (dwExitCode != STILL_ACTIVE
+			|| !(splash || stayAlive))
+	{
+		KillTimer(hWnd, ID_TIMER);
+		PostQuitMessage(0);
+	}
+}

+ 122 - 0
tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/jniguihead.dev

@@ -0,0 +1,122 @@
+[Project]
+FileName=jniguihead.dev
+Name=jniguihead
+UnitCount=7
+Type=0
+Ver=2
+ObjFiles=
+Includes="c:\Program Files\AdoptOpenJDK\jdk-8.0.282.8-hotspot\include";"c:\Program Files\AdoptOpenJDK\jdk-8.0.282.8-hotspot\include\win32"
+Libs=
+PrivateResource=
+ResourceIncludes=
+MakeIncludes=
+Compiler=
+CppCompiler=
+Linker=-n_@@_
+IsCpp=0
+Icon=
+ExeOutput=
+ObjectOutput=..\..\head_jni_BETA
+OverrideOutput=0
+OverrideOutputName=jniguihead.exe
+HostApplication=
+Folders=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=Makefile.win
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=000000d000000000000001000
+LogOutput=
+LogOutputEnabled=0
+
+[Unit1]
+FileName=jniguihead.c
+CompileCpp=0
+Folder=jniguihead_BETA
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c jniguihead.c -o ../../head_jni_BETA/jniguihead.o $(CFLAGS)
+
+[Unit2]
+FileName=jniguihead.h
+CompileCpp=0
+Folder=jniguihead_BETA
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=0.1.1.1
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=
+AutoIncBuildNr=0
+SyncProduct=0
+
+[Unit4]
+FileName=..\head.h
+CompileCpp=0
+Folder=jniguihead_BETA
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit6]
+FileName=..\jnihead.c
+CompileCpp=0
+Folder=jniguihead_BETA
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=..\head.c
+CompileCpp=0
+Folder=jniguihead_BETA
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c head.c -o ../../head/head.o $(CFLAGS)
+
+[Unit5]
+FileName=..\resource.h
+CompileCpp=0
+Folder=jniguihead_BETA
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit7]
+FileName=..\jnihead.h
+CompileCpp=0
+Folder=jniguihead_BETA
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+

+ 43 - 0
tools/jar2exe/dist/release/launch4j/head_src/jniguihead_BETA/jniguihead.h

@@ -0,0 +1,43 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2007 Grzegorz Kowal
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#define ID_TIMER 1
+#define DEFAULT_SPLASH_TIMEOUT	60			/* 60 seconds */
+#define MAX_SPLASH_TIMEOUT		60 * 15		/* 15 minutes */
+
+HWND getInstanceWindow();
+
+BOOL CALLBACK enumwndfn(HWND hwnd, LPARAM lParam);
+
+VOID CALLBACK TimerProc(
+  HWND hwnd,     // handle of window for timer messages
+  UINT uMsg,     // WM_TIMER message
+  UINT idEvent,  // timer identifier
+  DWORD dwTime   // current system time
+);

+ 284 - 0
tools/jar2exe/dist/release/launch4j/head_src/jnihead.c

@@ -0,0 +1,284 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2007 Ryan Rusaw
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#include "jnihead.h"
+
+/* Java Invocation API stuff */
+typedef jint (JNICALL CreateJavaVM_t)(JavaVM **pvm, void **env, void *args);
+JavaVM* g_pJavaVM = NULL;
+JNIEnv* g_pJNIEnv = NULL;
+JavaVMInitArgs g_sJavaVMInitArgs;
+char    g_rgcMnClsArgs[MAX_ARGS]  = {0};
+char	g_rgcMnCls[_MAX_PATH] = {0};
+char	g_rgcCurrJrePth[_MAX_PATH]  = {0};
+HINSTANCE  g_hInstance;
+const char* g_pcSep = " \t\f\r\n\v";
+
+int getArgCount(const char* pcArgStr) 
+{
+	const char *pCopy;
+	int iArgCnt= 0;
+	int bInWtSpc = 1;
+	for(pCopy = pcArgStr; *pCopy; pCopy++)
+	{
+		if (!isspace(*pCopy) && bInWtSpc)
+		{
+			iArgCnt++;
+		}
+		bInWtSpc = isspace(*pCopy);
+	}
+	return iArgCnt;
+}
+
+void saveJvmOptions(const char *jrePath, const char *mainClass, const char *pcOpts)
+{
+	strcpy(g_rgcCurrJrePth, jrePath);
+	strcpy(g_rgcMnCls, mainClass);
+
+	char 				rgcOptCpy[MAX_ARGS] = {0};
+	int 				iArgCnt = 0, iCurrArg = 0, iSkipArgCnt = 0;
+	char 				*pcCurrOpt;
+	char 				**prgcVmArgs = NULL;
+	strncpy(rgcOptCpy, pcOpts, MAX_ARGS - 1);
+	
+
+	iArgCnt = getArgCount(rgcOptCpy);
+	if (iArgCnt > 0)
+	{
+		/* Allocate iArgCnt char pointers */
+		prgcVmArgs = malloc(iArgCnt * sizeof(char *)); 
+		for (pcCurrOpt = strtok(rgcOptCpy, g_pcSep); pcCurrOpt; pcCurrOpt = strtok(NULL, g_pcSep), iCurrArg++)
+		{
+			/* Use the allocated pointers to make an array of substrings */
+			prgcVmArgs[iCurrArg] = pcCurrOpt;
+		}
+		/* Allocat iArgCnt JavaVMOptions for the g_sJavaVMInitArgs struct */
+		g_sJavaVMInitArgs.options = malloc(iArgCnt * sizeof(JavaVMOption));
+		memset(g_sJavaVMInitArgs.options, 0, iArgCnt * sizeof(JavaVMOption));
+		char* rgcClsPth = 0;
+		/* Copy the tokenized array into the allocated JavaVMOption array,
+		 * with some special handling for classpath related arguments */
+		for (iCurrArg = 0; iCurrArg < iArgCnt; iCurrArg++)
+		{
+			if ((strcmp(prgcVmArgs[iCurrArg], "-classpath") == 0) ||
+					  (strcmp(prgcVmArgs[iCurrArg], "-jar") == 0))
+			{
+				iCurrArg++;
+				iSkipArgCnt++;
+				if (iCurrArg < iArgCnt)
+				{
+					int iOffset = *prgcVmArgs[iCurrArg] == '"' ? 1 : 0;
+					char rgcTmp[MAX_ARGS] = {0};
+					/* Remove leading and trailing "'s */\
+					strncpy(rgcTmp, prgcVmArgs[iCurrArg] + iOffset, 
+						strlen(prgcVmArgs[iCurrArg]) - iOffset);
+					if (rgcTmp[strlen(rgcTmp)-1] == '"')
+						rgcTmp[strlen(rgcTmp)-1] = '\0';
+					/* If we haven't defined a classpath yet start one, otherwise
+					 * we just append the this classpath to it */
+					if (!rgcClsPth)
+					{
+						rgcClsPth = malloc(MAX_ARGS * sizeof(char));
+						memset(rgcClsPth, 0, MAX_ARGS * sizeof(char));
+						sprintf(rgcClsPth,"-Djava.class.path=%s", rgcTmp);
+						g_sJavaVMInitArgs.options[iCurrArg - iSkipArgCnt].optionString = rgcClsPth;
+					}
+					else
+					{
+						iSkipArgCnt++;
+						strcat(rgcClsPth,";");
+						strcat(rgcClsPth,rgcTmp);
+					}
+					
+				}
+			}
+			else
+			{
+				g_sJavaVMInitArgs.options[iCurrArg - iSkipArgCnt].optionString
+					= malloc(strlen(prgcVmArgs[iCurrArg]) + 1);
+				strcpy(g_sJavaVMInitArgs.options[iCurrArg - iSkipArgCnt].optionString, 
+						prgcVmArgs[iCurrArg]);
+			}
+		}
+		g_sJavaVMInitArgs.nOptions = iArgCnt - iSkipArgCnt;
+		/* Free the malloc'd memory, we dont want to leak */
+		free(prgcVmArgs);
+	}
+}
+
+JNIEnv* createVm()
+{
+	int				iRetVal;
+	CreateJavaVM_t	*pfnCreateJavaVM;
+	char			rgcLibPth[_MAX_PATH + 18];
+	// sprintf(rgcLibPth, "%s\\bin\\client\\jvm.dll", g_rgcCurrJrePth); // TODO - could be client or server
+	sprintf(rgcLibPth, "%s\\bin\\client\\jvm.dll", g_rgcCurrJrePth);
+	
+	/* Get a handle to the jvm dll */
+	if ((g_hInstance = LoadLibrary(rgcLibPth)) == NULL)
+	{
+		return NULL;
+	}
+
+	/* Get the CreateJavaVM() function */
+	pfnCreateJavaVM = (CreateJavaVM_t *)GetProcAddress(g_hInstance, "JNI_CreateJavaVM");
+
+	if (pfnCreateJavaVM == NULL)
+	{
+		return NULL;
+	}
+
+	g_sJavaVMInitArgs.version				= JNI_VERSION_1_2;
+	g_sJavaVMInitArgs.ignoreUnrecognized	= JNI_TRUE;
+	/* Start the VM */
+	iRetVal = pfnCreateJavaVM(&g_pJavaVM, (void **)&g_pJNIEnv, &g_sJavaVMInitArgs);
+
+	if (iRetVal != 0)
+	{
+		return NULL;
+	}
+	
+	return g_pJNIEnv;
+}
+
+int invokeMainClass(JNIEnv* psJNIEnv) 
+{
+	jclass			jcMnCls;
+	jmethodID		jmMnMthd;
+	jobjectArray	joAppArgs;
+	jstring			jsAppArg;
+	jthrowable 		jtExcptn;
+	char			*pcCurrArg;
+	int				iArgCnt= 0, iOption = -1;
+	char			rgcMnClsCpy[MAX_ARGS] = {0};
+
+	/* Ensure Java JNI Env is set up */
+	if(psJNIEnv == NULL)
+	{
+		return -1;
+	}
+	/* We need a class name */
+	if (g_rgcMnCls[0] == '\0')
+	{
+		return -1;
+	}
+	else
+	{
+		/* Replace . with / in fully qualified class name */
+		char *pClsNm;
+		for(pClsNm = g_rgcMnCls; *pClsNm; pClsNm++)
+		{
+			if(*pClsNm == '.')
+				*pClsNm = '/';
+		}
+	}
+	/* Find the class */
+	jcMnCls = (*psJNIEnv)->FindClass(psJNIEnv, g_rgcMnCls);
+	jtExcptn = (*psJNIEnv)->ExceptionOccurred(psJNIEnv);
+	if (jtExcptn != NULL)
+	{
+		(*psJNIEnv)->ExceptionDescribe(psJNIEnv);
+		return -1;
+	}
+	if (jcMnCls == NULL)
+	{
+		return -1;
+	}
+	/* Get the static main method */
+	jmMnMthd = (*psJNIEnv)->GetStaticMethodID(psJNIEnv, jcMnCls, "main", "([Ljava/lang/String;)V");
+	jtExcptn = (*psJNIEnv)->ExceptionOccurred(psJNIEnv);
+	if (jtExcptn != NULL)
+	{
+		(*psJNIEnv)->ExceptionDescribe(psJNIEnv);
+	}
+	if (jmMnMthd == NULL)
+	{
+		return -1;
+	}
+	/* Build the String[] array if we need one */
+	strncpy(rgcMnClsCpy, g_rgcMnClsArgs, MAX_ARGS);
+	iArgCnt = getArgCount(rgcMnClsCpy);
+	joAppArgs = (jobjectArray)(*psJNIEnv)->NewObjectArray(psJNIEnv, iArgCnt, 
+		(*psJNIEnv)->FindClass(psJNIEnv, "java/lang/String"), NULL);
+	jtExcptn = (*psJNIEnv)->ExceptionOccurred(psJNIEnv);
+	if (jtExcptn != NULL)
+	{
+		(*psJNIEnv)->ExceptionDescribe(psJNIEnv);
+		return -1;
+	}
+	for (pcCurrArg = strtok(rgcMnClsCpy, g_pcSep); pcCurrArg; pcCurrArg = strtok(NULL, g_pcSep))
+	{
+		iOption++;
+		jsAppArg = (*psJNIEnv)->NewStringUTF(psJNIEnv, pcCurrArg);
+		(*psJNIEnv)->SetObjectArrayElement(psJNIEnv, joAppArgs, iOption, jsAppArg);
+		jtExcptn = (*psJNIEnv)->ExceptionOccurred(psJNIEnv);
+		if(jtExcptn != NULL)
+		{
+			(*psJNIEnv)->ExceptionDescribe(psJNIEnv);
+			return -1;
+		}
+	}
+	/* Execute the class */
+	(*psJNIEnv)->CallStaticVoidMethod(psJNIEnv, jcMnCls, jmMnMthd, joAppArgs);
+	return 0;
+}
+
+void cleanupVm()
+{
+	/* Destroy the VM */
+	(*g_pJavaVM)->DestroyJavaVM(g_pJavaVM);
+}
+
+BOOL executeVm(DWORD *dwExitCode)
+{
+	BOOL result = TRUE;
+	*dwExitCode = -1;
+
+	int iIdx;
+	/* Use Invocation API */
+	if (createVm())
+	{
+		*dwExitCode = invokeMainClass(g_pJNIEnv);
+		cleanupVm();
+	}
+	else
+	{
+		result = FALSE;
+	}
+
+	/* Free the allocated memory */
+	for (iIdx = 0; iIdx < g_sJavaVMInitArgs.nOptions; iIdx++)
+	{
+		free(g_sJavaVMInitArgs.options[iIdx].optionString);
+	}
+	free(g_sJavaVMInitArgs.options);
+
+	return result;
+}
+

+ 41 - 0
tools/jar2exe/dist/release/launch4j/head_src/jnihead.h

@@ -0,0 +1,41 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2007 Ryan Rusaw
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+#include <jni.h>
+#include <ctype.h>
+
+#include "head.h"
+
+int getArgCount(const char* pcArgStr);
+void saveJvmOptions(const char *jrePath, const char *mainClass, const char *pcOpts);
+JNIEnv* createVm();
+int invokeMainClass(JNIEnv* psJNIEnv);
+void cleanupVm();
+BOOL executeVm(DWORD *dwExitCode);
+

+ 13 - 0
tools/jar2exe/dist/release/launch4j/head_src/makefile

@@ -0,0 +1,13 @@
+MAKE      = mingw32-make.exe
+
+all:
+	$(MAKE) -C guihead -f Makefile.win all
+	$(MAKE) -C consolehead -f Makefile.win all
+	$(MAKE) -C jniguihead_BETA -f Makefile.win all
+	$(MAKE) -C jniconsolehead_BETA -f Makefile.win all
+
+clean:
+	$(MAKE) -C guihead -f Makefile.win clean
+	$(MAKE) -C consolehead -f Makefile.win clean
+	$(MAKE) -C jniguihead_BETA -f Makefile.win clean
+	$(MAKE) -C jniconsolehead_BETA -f Makefile.win clean

+ 72 - 0
tools/jar2exe/dist/release/launch4j/head_src/resource.h

@@ -0,0 +1,72 @@
+/*
+	Launch4j (http://launch4j.sourceforge.net/)
+	Cross-platform Java application wrapper for creating Windows native executables.
+
+	Copyright (c) 2004, 2014 Grzegorz Kowal
+							 Ian Roberts (jdk preference patch)
+
+	Permission is hereby granted, free of charge, to any person obtaining a copy
+	of this software and associated documentation files (the "Software"), to deal
+	in the Software without restriction, including without limitation the rights
+	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+	copies of the Software, and to permit persons to whom the Software is
+	furnished to do so, subject to the following conditions:
+
+	The above copyright notice and this permission notice shall be included in
+	all copies or substantial portions of the Software.
+
+	Except as contained in this notice, the name(s) of the above copyright holders
+	shall not be used in advertising or otherwise to promote the sale, use or other
+	dealings in this Software without prior written authorization.
+
+	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+	THE SOFTWARE.
+*/
+
+// ICON
+#define APP_ICON 					1
+
+// BITMAP
+#define SPLASH_BITMAP				1
+
+// RCDATA
+#define JRE_PATH					1
+#define JAVA_MIN_VER				2
+#define JAVA_MAX_VER				3
+#define SHOW_SPLASH					4
+#define SPLASH_WAITS_FOR_WINDOW		5
+#define SPLASH_TIMEOUT				6 
+#define SPLASH_TIMEOUT_ERR			7
+#define CHDIR						8
+#define ERR_TITLE					10
+#define GUI_HEADER_STAYS_ALIVE		11
+#define JVM_OPTIONS					12
+#define CMD_LINE					13
+#define JAR							14
+#define MAIN_CLASS					15
+#define CLASSPATH					16
+#define WRAPPER						17
+#define REQUIRES_JDK				18
+#define ENV_VARIABLES				19
+#define PRIORITY_CLASS				20
+#define DOWNLOAD_URL				21
+#define SUPPORT_URL					22
+#define MUTEX_NAME					23
+#define INSTANCE_WINDOW_TITLE		24
+#define INITIAL_HEAP_SIZE			25
+#define INITIAL_HEAP_PERCENT		26
+#define MAX_HEAP_SIZE				27
+#define MAX_HEAP_PERCENT			28
+#define REQUIRES_64_BIT		 		29
+#define RESTART_ON_CRASH			31
+
+#define STARTUP_ERR					101
+#define JRE_NOT_FOUND_ERR			102
+#define JRE_VERSION_ERR				103
+#define LAUNCHER_ERR				104
+#define INSTANCE_ALREADY_EXISTS_MSG	105

BIN
tools/jar2exe/dist/release/launch4j/launch4j.exe


BIN
tools/jar2exe/dist/release/launch4j/launch4j.jar


BIN
tools/jar2exe/dist/release/launch4j/launch4j.jfpr


BIN
tools/jar2exe/dist/release/launch4j/launch4jc.exe


+ 31 - 0
tools/jar2exe/dist/release/launch4j/lib/JGoodies.Forms.LICENSE.txt

@@ -0,0 +1,31 @@
+
+              The BSD License for the JGoodies Forms
+              ======================================
+
+Copyright (c) 2002-2014 JGoodies Software GmbH. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions are met:
+
+ o Redistributions of source code must retain the above copyright notice, 
+   this list of conditions and the following disclaimer. 
+    
+ o Redistributions in binary form must reproduce the above copyright notice, 
+   this list of conditions and the following disclaimer in the documentation 
+   and/or other materials provided with the distribution. 
+    
+ o Neither the name of JGoodies Software GmbH nor the names of 
+   its contributors may be used to endorse or promote products derived 
+   from this software without specific prior written permission. 
+    
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 504 - 0
tools/jar2exe/dist/release/launch4j/lib/Nuvola.Icon.Theme.LICENSE.txt

@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+

+ 28 - 0
tools/jar2exe/dist/release/launch4j/lib/XStream.LICENSE.txt

@@ -0,0 +1,28 @@
+(BSD Style License)
+
+Copyright (c) 2003-2006, Joe Walnes
+Copyright (c) 2006-2019, XStream Committers
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of
+conditions and the following disclaimer. Redistributions in binary form must reproduce
+the above copyright notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the distribution.
+
+Neither the name of XStream nor the names of its contributors may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.

+ 201 - 0
tools/jar2exe/dist/release/launch4j/lib/ant.LICENSE.txt

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

BIN
tools/jar2exe/dist/release/launch4j/lib/ant.jar


BIN
tools/jar2exe/dist/release/launch4j/lib/commons-beanutils.jar


BIN
tools/jar2exe/dist/release/launch4j/lib/commons-logging.jar


+ 202 - 0
tools/jar2exe/dist/release/launch4j/lib/commons.LICENSE.txt

@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

+ 201 - 0
tools/jar2exe/dist/release/launch4j/lib/flatlaf.LICENSE.txt

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

BIN
tools/jar2exe/dist/release/launch4j/lib/flatlaf.jar


BIN
tools/jar2exe/dist/release/launch4j/lib/formsrt.jar


BIN
tools/jar2exe/dist/release/launch4j/lib/jgoodies-common.jar


BIN
tools/jar2exe/dist/release/launch4j/lib/jgoodies-forms.jar


BIN
tools/jar2exe/dist/release/launch4j/lib/xstream.jar


+ 12 - 0
tools/jar2exe/dist/release/launch4j/manifest/uac.exe.manifest

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+        <security>
+            <requestedPrivileges>
+                <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+                <!-- <requestedExecutionLevel level="highestAvailable" uiAccess="false"/> -->
+                <!-- <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> -->
+            </requestedPrivileges>
+        </security>
+    </trustInfo>
+</assembly>    

+ 24 - 0
tools/jar2exe/dist/release/launch4j/maven/.classpath

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="demo/SimpleApp/build" path="demo/SimpleApp/src"/>
+	<classpathentry kind="src" output="demo/ConsoleApp/build" path="demo/ConsoleApp/src"/>
+
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+
+</classpath>

+ 23 - 0
tools/jar2exe/dist/release/launch4j/maven/.project

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>launch4j</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

+ 14 - 0
tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-dist.xml

@@ -0,0 +1,14 @@
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+	<id>distribution-libs</id>
+	<formats>
+		<format>dir</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<dependencySets>
+		<dependencySet>
+			<includes></includes>
+			<useProjectArtifact>false</useProjectArtifact>
+		</dependencySet>
+	</dependencySets>
+</assembly>

+ 53 - 0
tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-linux.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Maven Launch4j Plugin
+Copyright (c) 2006 Paul Jungwirth
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<assembly>
+	<id>workdir-linux</id>
+	<formats>
+		<format>jar</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>bin/bin-linux</directory>
+			<outputDirectory>${finalName}-workdir-linux/bin</outputDirectory>
+		</fileSet>
+		<fileSet>			
+			<outputDirectory>${finalName}-workdir-linux</outputDirectory>
+			<includes>
+				<include>w32api/**/*</include>
+				<include>w32api_jni/**/*</include>
+				<include>head/**/*</include>
+				<include>head_jni_BETA/**/*</include>
+			</includes>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 53 - 0
tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-linux64.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Maven Launch4j Plugin
+Copyright (c) 2006 Paul Jungwirth
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<assembly>
+	<id>workdir-linux64</id>
+	<formats>
+		<format>jar</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>bin/bin-linux64</directory>
+			<outputDirectory>${finalName}-workdir-linux64/bin</outputDirectory>
+		</fileSet>
+		<fileSet>			
+			<outputDirectory>${finalName}-workdir-linux64</outputDirectory>
+			<includes>
+				<include>w32api/**/*</include>
+				<include>w32api_jni/**/*</include>
+				<include>head/**/*</include>
+				<include>head_jni_BETA/**/*</include>
+			</includes>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 53 - 0
tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-mac.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Maven Launch4j Plugin
+Copyright (c) 2006 Paul Jungwirth
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<assembly>
+	<id>workdir-mac</id>
+	<formats>
+		<format>jar</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>bin/bin-macosx-x86</directory>
+			<outputDirectory>${finalName}-workdir-mac/bin</outputDirectory>
+		</fileSet>
+		<fileSet>			
+			<outputDirectory>${finalName}-workdir-mac</outputDirectory>
+			<includes>
+				<include>w32api/**/*</include>
+				<include>w32api_jni/**/*</include>
+				<include>head/**/*</include>
+				<include>head_jni_BETA/**/*</include>
+			</includes>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 53 - 0
tools/jar2exe/dist/release/launch4j/maven/assembly/assemble-win32.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Maven Launch4j Plugin
+Copyright (c) 2006 Paul Jungwirth
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<assembly>
+	<id>workdir-win32</id>
+	<formats>
+		<format>jar</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>bin/bin-win32</directory>
+			<outputDirectory>${finalName}-workdir-win32/bin</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<outputDirectory>${finalName}-workdir-win32</outputDirectory>
+			<includes>
+				<include>w32api/**/*</include>
+				<include>w32api_jni/**/*</include>
+				<include>head/**/*</include>
+				<include>head_jni_BETA/**/*</include>
+			</includes>
+		</fileSet>
+	</fileSets>
+</assembly>

+ 55 - 0
tools/jar2exe/dist/release/launch4j/maven/assembly/src.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Maven Launch4j Plugin
+Copyright (c) 2006 Paul Jungwirth
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+   may be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<assembly>
+  <id>src</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <fileSets>
+    <fileSet>
+      <includes>
+        <include>README*</include>
+        <include>LICENSE*</include>
+        <include>NOTICE*</include>
+        <include>TODO</include>
+        <include>pom.xml</include>
+      </includes>
+    </fileSet>
+    <fileSet>
+      <directory>src</directory>
+	  <excludes>
+		  <exclude>**/.*.swp</exclude>
+	  </excludes>
+    </fileSet>
+  </fileSets>
+</assembly>

+ 8 - 0
tools/jar2exe/dist/release/launch4j/maven/maven-readme.txt

@@ -0,0 +1,8 @@
+Run once the Ant target switch-to-maven, it will reconfigure the project to use maven.
+
+*** Creation of Distribution Release ***
+Windows: mvn -P dist,win32 clean package
+
+Linux: mvn -P dist,linux clean package  
+
+MacOsX: mvn -P dist,macosx-x86 clean package

+ 511 - 0
tools/jar2exe/dist/release/launch4j/maven/pom.xml

@@ -0,0 +1,511 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>net.sf.launch4j</groupId>
+	<artifactId>launch4j</artifactId>
+	<version>${launch4j.version}</version>
+	<name>Launch4j</name>
+	<description>Cross-platform Java executable wrapper for creating lightweight Windows native EXEs. Provides advanced JRE search, application startup configuration and better user experience.</description>
+	<url>http://sourceforge.net/projects/launch4j/</url>
+
+	<licenses>
+		<license>
+			<name>BSD 3-Clause License</name>
+			<url>http://opensource.org/licenses/BSD-3-Clause</url>
+			<comments>Launch4j is licensed under the BSD 3-Clause License.</comments>
+		</license>
+		<license>
+			<name>MIT License</name>
+			<url>http://www.opensource.org/licenses/mit-license.php</url>
+			<comments>Launch4j code (head) which is attached to the wrapped jars is licensed under the MIT License.</comments>
+		</license>
+	</licenses>
+
+	<developers>
+		<developer>
+			<name>Grzegorz Kowal</name>
+			<url>http://sourceforge.net/u/grzegok/profile/</url>
+		</developer>
+	</developers>
+
+	<scm>
+		<connection>scm:git:http://git.code.sf.net/p/launch4j/git</connection>
+		<developerConnection>scm:git:http://git.code.sf.net/p/launch4j/git</developerConnection>
+		<url>http://sourceforge.net/p/launch4j/git/ci/master/tree/</url>
+	</scm>
+
+	<distributionManagement>
+		<snapshotRepository>
+			<id>ossrh</id>
+			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
+		</snapshotRepository>
+	</distributionManagement>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<versionNumber>${launch4j.version}.0.0</versionNumber>
+		<version>${launch4j.version}</version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>commons-beanutils</groupId>
+			<artifactId>commons-beanutils</artifactId>
+			<exclusions>
+				<exclusion>
+					<artifactId>commons-collections</artifactId>
+					<groupId>commons-collections</groupId>
+				</exclusion>
+			</exclusions>
+			<version>1.9.4</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-logging</groupId>
+			<artifactId>commons-logging</artifactId>
+			<version>1.2</version>
+		</dependency>
+		<dependency>
+			<groupId>net.java.abeille</groupId>
+			<artifactId>abeille</artifactId>
+			<version>3.0</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>colt</artifactId>
+					<groupId>colt</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>
+						com.springsource.org.apache.batik.ext.awt
+					</artifactId>
+					<groupId>org.apache.batik</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>
+						com.springsource.org.apache.batik.util
+					</artifactId>
+					<groupId>org.apache.batik</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>dom4j</artifactId>
+					<groupId>dom4j</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>dsol-xml</artifactId>
+					<groupId>dsol</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>javahelp</artifactId>
+					<groupId>javax.help</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>jfreechart</artifactId>
+					<groupId>jfree</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>jcommon</artifactId>
+					<groupId>jfree</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>mahout-collections</artifactId>
+					<groupId>org.apache.mahout</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>optimization</artifactId>
+					<groupId>com.github.rwl</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>com.jgoodies</groupId>
+			<artifactId>jgoodies-common</artifactId>
+			<version>1.7.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.jgoodies</groupId>
+			<artifactId>forms</artifactId>
+			<version>1.2.1</version>
+		</dependency>
+		<dependency>
+  			<groupId>com.formdev</groupId>
+  			<artifactId>flatlaf</artifactId>
+  			<version>1.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.thoughtworks.xstream</groupId>
+			<artifactId>xstream</artifactId>
+			<version>1.4.15</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.ant</groupId>
+			<artifactId>ant</artifactId>
+			<version>1.10.9</version>
+		</dependency>
+
+	</dependencies>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<resources>
+			<resource>
+				<directory>src</directory>
+				<excludes>
+					<exclude>**/*.java</exclude>
+				</excludes>
+			</resource>
+		</resources>
+		<plugins>
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.8.1</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>com.github.taxone.plugins</groupId>
+				<artifactId>classpath-maven-plugin</artifactId>
+				<version>1.0.0</version>
+				<executions>
+					<execution>
+						<id>set-classpath-property</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>setClassPath</goal>
+						</goals>
+						<configuration>
+							<classpathPrefix>lib/</classpathPrefix>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>2.5</version>
+				<executions>
+					<execution>
+						<id>default-jar</id>
+						<phase>package</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+						<configuration>
+							<archive>
+								<manifest>
+									<mainClass>net.sf.launch4j.Main</mainClass>
+								</manifest>
+								<manifestEntries>
+									<Class-Path>. ${taxone.classpath.propertyName}</Class-Path>
+								</manifestEntries>
+							</archive>
+						</configuration>
+					</execution>
+					<execution>
+						<id>core-jar</id>
+						<phase>package</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+						<configuration>
+							<finalName>${project.build.finalName}</finalName>
+							<excludes>
+								<exclude>net/sf/launch4j/form/</exclude>
+								<exclude>net/sf/launch4j/formimpl</exclude>
+							</excludes>
+							<classifier>core</classifier>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>2.4.1</version>
+				<executions>
+					<execution>
+						<id>assemble-workdir</id>
+						<phase>package</phase>
+						<goals>
+							<goal>attached</goal>
+						</goals>
+						<configuration>
+							<descriptors>
+								<descriptor>assembly/assemble-linux.xml</descriptor>
+								<descriptor>assembly/assemble-linux64.xml</descriptor>
+								<descriptor>assembly/assemble-win32.xml</descriptor>
+								<descriptor>assembly/assemble-mac.xml</descriptor>
+							</descriptors>
+						</configuration>
+					</execution>
+					<execution>
+						<id>assemble-distrib</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<finalName>lib</finalName>
+							<outputDirectory>${basedir}</outputDirectory>
+							<appendAssemblyId>false</appendAssemblyId>
+							<descriptors>
+								<descriptor>assembly/assemble-dist.xml</descriptor>
+							</descriptors>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-resources-plugin</artifactId>
+				<version>2.6</version>
+				<executions>
+					<execution>
+						<id>copy-resources</id>
+						<phase>package</phase>
+						<goals>
+							<goal>copy-resources</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${basedir}</outputDirectory>
+							<resources>
+								<resource>
+									<directory>target</directory>
+									<includes>
+										<include>${project.build.finalName}.jar</include>
+									</includes>
+								</resource>
+							</resources>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-clean-plugin</artifactId>
+				<version>2.6</version>
+				<configuration>
+					<filesets>
+						<fileset>
+							<directory>${basedir}</directory>
+							<includes>
+								<include>${project.build.finalName}.jar</include>
+							</includes>
+						</fileset>
+					</filesets>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>full-release</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-source-plugin</artifactId>
+						<version>2.3</version>
+						<executions>
+							<execution>
+								<id>attach-sources</id>
+								<goals>
+									<goal>jar-no-fork</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-javadoc-plugin</artifactId>
+						<version>3.2.0</version>
+						<configuration>
+                			<doclint>none</doclint>
+              			</configuration>
+						<executions>
+							<execution>
+								<id>attach-javadocs</id>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-gpg-plugin</artifactId>
+						<version>1.5</version>
+						<executions>
+							<execution>
+								<id>sign-artifacts</id>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.sonatype.plugins</groupId>
+						<artifactId>nexus-staging-maven-plugin</artifactId>
+						<version>1.6.2</version>
+						<extensions>true</extensions>
+						<configuration>
+							<serverId>ossrh</serverId>
+							<nexusUrl>https://oss.sonatype.org/</nexusUrl>
+							<!-- Release has to be executed manually -->
+							<autoReleaseAfterClose>false</autoReleaseAfterClose>
+						</configuration>
+					</plugin>
+
+				</plugins>
+			</build>
+		</profile>
+		<!-- Macosx-x86 Profile -->
+		<profile>
+			<id>macosx-x86</id>
+			<properties>
+				<bin.dir>bin-macosx-x86</bin.dir>
+			</properties>
+		</profile>
+		<!-- Linux Profile -->
+		<profile>
+			<id>linux</id>
+			<properties>
+				<bin.dir>bin-linux</bin.dir>
+			</properties>
+		</profile>
+		<!-- Windows Profile -->
+		<profile>
+			<id>win32</id>
+			<properties>
+				<bin.dir>bin-win32</bin.dir>
+			</properties>
+			<build>
+				<plugins>
+					<!-- Creates Launch4j executable -->
+					<plugin>
+						<groupId>com.akathist.maven.plugins.launch4j</groupId>
+						<artifactId>launch4j-maven-plugin</artifactId>
+						<version>1.7.25</version>
+						<executions>
+							<execution>
+								<id>launch4j</id>
+								<phase>package</phase>
+								<goals>
+									<goal>launch4j</goal>
+								</goals>
+								<configuration>
+									<headerType>gui</headerType>
+									<dontWrapJar>true</dontWrapJar>
+									<jar>${project.build.finalName}.jar</jar>
+									<outfile>launch4j.exe</outfile>
+									<errTitle>launch4j</errTitle>
+									<chdir>.</chdir>
+									<stayAlive>false</stayAlive>
+
+									<jre>
+										<minVersion>1.8.0</minVersion>
+									</jre>
+									<versionInfo>
+										<fileVersion>${versionNumber}</fileVersion>
+										<txtFileVersion>${version}</txtFileVersion>
+										<productVersion>${versionNumber}</productVersion>
+										<txtProductVersion>${version}</txtProductVersion>
+										<fileDescription>Cross-platform Java application wrapper</fileDescription>
+										<copyright>Copyright (C) 2004, 2017 Grzegorz Kowal</copyright>
+										<productName>launch4j</productName>
+										<companyName>http://launch4j.sourceforge.net/</companyName>
+										<internalName>GUI launcher</internalName>
+										<originalFilename>launch4j.exe</originalFilename>
+									</versionInfo>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<!-- Generic distribution profile -->
+		<profile>
+			<id>dist</id>
+			<build>
+				<plugins>
+					<!-- Clean -->
+					<plugin>
+						<artifactId>maven-clean-plugin</artifactId>
+						<version>2.6</version>
+						<configuration>
+							<filesets>
+								<fileset>
+									<directory>${basedir}/bin</directory>
+									<includes>
+										<incude>*</incude>
+									</includes>
+									<excludes>
+										<exclude>COPYING</exclude>
+									</excludes>
+								</fileset>
+								<fileset>
+									<directory>${basedir}</directory>
+									<includes>
+										<incude>launch4j.exe</incude>
+									</includes>
+								</fileset>
+								<fileset>
+									<directory>${basedir}</directory>
+									<includes>
+										<incude>lib/</incude>
+									</includes>
+								</fileset>
+							</filesets>
+						</configuration>
+					</plugin>
+					<!-- Copies executables to "bin" directory -->
+					<plugin>
+						<artifactId>maven-resources-plugin</artifactId>
+						<version>2.6</version>
+						<executions>
+							<execution>
+								<id>copy-binutils</id>
+								<phase>prepare-package</phase>
+								<goals>
+									<goal>copy-resources</goal>
+								</goals>
+								<configuration>
+									<outputDirectory>${basedir}/bin</outputDirectory>
+									<resources>
+										<resource>
+											<directory>${basedir}/bin/${bin.dir}</directory>
+										</resource>
+									</resources>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+					<!-- Change Permissions -->
+					<plugin>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<version>1.7</version>
+						<executions>
+							<execution>
+								<phase>package</phase>
+								<configuration>
+									<target>
+										<chmod file="launch4j" perm="+x" />
+										<chmod file="bin/windres" perm="+x" />
+										<chmod file="bin/ld" perm="+x" />
+									</target>
+								</configuration>
+								<goals>
+									<goal>run</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+
+	</profiles>
+
+</project>

+ 0 - 0
tools/jar2exe/dist/release/launch4j/sign4j/Bouncy Castle.LICENSE.txt


Някои файлове не бяха показани, защото твърде много файлове са промени