猛禽洛的程式筆記庫

[JavaFx] 使用eclipse paho mqtt時,用javapackager打包後執行遇到的錯誤:java/util/logging/Logger

專案中使用到MQTT的功能,在開發環境中都是正常的,但一打包成EXE執行檔後,就無法執行了,找了一大圈才發現到是jre的問題。

javapackager打包時,為了減少檔案大小,所以環境的部分會使用減肥版的jre,但是MQTT會使用到jdk本身的功能,於是就無法正常載入了。

找了一大圈似乎沒看到能用jre解決的辦法,於是只能用暴力解法了,將JDK環境直接複製到專案資料夾底下,並且在pom.xml中直接指定打包要用的jar路徑:

<plugin>
  <groupId>io.github.fvarrui</groupId>
  <artifactId>javapackager</artifactId>
  <version>1.7.6</version>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>package</goal>
      </goals>
      <configuration>
        <mainClass>com.aiserver.Main</mainClass>
        <bundleJre>true</bundleJre>
        <!--在這邊指定-->
        <jrePath>${project.basedir}/liberica-full-17.0.14</jrePath>
        <generateInstaller>false</generateInstaller>
        <administratorRequired>false</administratorRequired>
        <platform>windows</platform>
      </configuration>
    </execution>
  </executions>
</plugin>

重新打包即可正常執行,缺點就是成是很肥,不過對現在的電腦來說影響不大吧(笑。

-END-

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *