Die Korrespondenz, wenn eine Java-Anwendung mit launch4j in exe erstellt wurde, funktioniert unter Windows, in dem openJDK installiert ist, nicht

Ich verwende verschiedene OpenJDK-Distributionen, da ich keine Lizenz für Oracle-Java habe. Aufgrund meiner Arbeit mache ich manchmal Apps vom Typ Client, also habe ich es in Java gemacht, weil es Mac / Win unterstützen kann (relativ einfach). Wenn die JAR-Datei unverändert bleibt, können einige Benutzer sie aufgrund des Assoziationsproblems möglicherweise nicht verwenden. Daher war es sehr schwierig. Deshalb habe ich sie mit launch4j in exe verpackt Es stellt sich heraus, dass es nicht mit einem bestimmten OpenJDK beginnt. Das Folgende ist das Mittel. (Da es einen Teil zum Bearbeiten der Registrierung gibt, können wir nicht wie gewohnt die Verantwortung für Probleme übernehmen.)

OpenJDK-Distribution, die mit lanunch4j gestartet werden kann

・ Amazon Coretto ・ AdoptOpenJDK

Amazon Coretto verwendet jedoch Liberica OpenJDK, da die JavaFX-Medienunterstützung noch nicht implementiert ist und Adopt nicht über JavaFX verfügt. Diese Liberica kann launch4j nicht ausführen. (Ich habe es nicht ausprobiert, aber zuru OpenJDK scheint auch nicht zu funktionieren)

Mit Liberica installiert

-JAVA_HOME ist gesetzt.

Aus der offiziellen Oracle JDK-Dokumentation

https://docs.oracle.com/javase/jp/9/install/installation-jdk-and-jre-microsoft-windows-platforms.htm#JSJIG-GUID-47C269A3-5220-412F-9E31-4B8C37A82BFB Das normale JDK-Installationsprogramm schreibt den Windows-Registrierungsschlüssel. Da launch4j eine Methode zum Lesen und Beurteilen des obigen Registrierungsschlüssels ist, funktioniert es nicht, da der Registrierungsschlüssel abhängig von der OpenJDK-Distribution nicht geschrieben wird.

Registrierungsschlüssel hinzufügen

** Versprechen: Erstellen Sie für alle Fälle ein Backup, bevor Sie die Registrierung ändern. ** ** ** Nachdem ich verschiedene Dinge ausprobiert hatte, konnte ich es durch Hinzufügen dieses Schlüssels starten. HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8 Also zusätzliche Befehle (von der Eingabeaufforderung im Administratormodus)

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /v CurrentVersion /t REG_SZ /d "1.8.0_252"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8" /v JavaHome /t REG_SZ /d "%JAVA_HOME%\jre"

Schreiben Sie "1.8.0_252" in der ersten Zeile entsprechend in die Java-Version. Passen Sie auf die gleiche Weise auch den Teil "1.8" des Pfads an die Version an.

(Vielleicht ist das auch) reg add "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8.0_252"

Beiseite

Wenn das Glas nicht mit einem Doppelklick gestartet wird, HKEY_CLASSES_ROOT¥.jar Manchmal funktioniert es, wenn Sie den Registrierungsschlüssel entfernen und die JRE neu installieren.

Referenzierte URL

https://sourceforge.net/p/launch4j/feature-requests/103/ https://github.com/AdoptOpenJDK/openjdk-installer/issues/64

Recommended Posts

Die Korrespondenz, wenn eine Java-Anwendung mit launch4j in exe erstellt wurde, funktioniert unter Windows, in dem openJDK installiert ist, nicht
[Kotlin] Die auf Java basierende Mapping-Bibliothek funktioniert grundsätzlich nicht mit Kotlin.
Verwenden von JupyterLab + Java mit WSL unter Windows 10
Speichermessung von Java-Apps unter Windows
Installieren Sie Java 11 (OpenJDK: AdoptOpenJDK) unter macOS mit Homebrew
Installieren Sie Java 14 (OpenJDK: AdoptOpenJDK) unter macOS mit Homebrew
Wenn @Transactional of Spring Boot nicht funktioniert
Installieren Sie Java 8 (OpenJDK: AdoptOpenJDK) unter macOS mit Homebrew
Eclipse wird nach der Installation von Java 11 nicht gestartet
[Lösung] Java kann unter Windows 10 + ATOK 2017 nicht installiert werden