Ich habe dieses Problem mit keinem der vorgeschlagenen Antworten gelöst. Am Ende habe ich einige Ordner und Dateien, die ich umziehen und umsenden kann, für die keine Java-Installation erforderlich ist und die durch Doppelklicken auf eine .bat-Datei ausgeführt werden können. Die folgende Prozedur funktionierte für mich: < /p>
- Erstellen Sie ein neues Gradle -Projekt von Grund auf < /p> < /li>
Fügen Sie alle Module/Code in den Ordner src/main/java hinzu Hauptmethode - Verschieben > Stellen Sie sicher />
Code: Select all
//Main start method Parent root = FXMLLoader.load(new File("fxml/main.fxml").toURI().toURL()); //Other FXML loading operations FXMLLoader loader = null; try { loader = new FXMLLoader(new File("fxml/GRAPHISO_proof.fxml").toURI().toURL()); } ... < /code> Und für Stylesheets: < /p> scene.getStylesheets().add("file:///" + new File("css/text-field-red-border.css").getAbsolutePath().replace('\\', '/'));
Erstellen Sie mit dieser Struktur: - MODUL-INFO.JAVA Innerhalb des SRC/Main/Java-Ordners:
< /ul>
)Code: Select all
module XYZ { requires javafx.controls; requires javafx.graphics; requires java.desktop; requires javafx.fxml; requires javafx.base; opens main.controller to javafx.fxml; //Open ALL controller-modules (all of my modules have a controller-submodule, e.g. main/controller, dlog/controller, graphiso/controller, ...) to javafx.fxml //... exports main; } < /code> [*] Stellen Sie sicherdistributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
- Verwenden Sie dies als Build.gradle:
Code: Select all
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath 'org.openjfx:javafx-plugin:0.0.8'
classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'
}
}
plugins {
id 'java'
id 'org.beryx.jlink' version '2.19.0'
}
apply plugin: 'org.openjfx.javafxplugin'
apply plugin: 'com.github.johnrengelman.shadow'
group 'org.example.abc'
version '1.0'
sourceCompatibility = 1.14
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
javafx {
sdk = 'C:\\Program Files\\Java\\javafx-sdk-14.0.1'
modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.base' ]
}
jlink {
mainClassName = 'main.AppLauncher'
launcher {
name = 'Whatever you want as name'
}
}
tasks.jlink.doLast {
copy {
from('src/main/resources')
into("$buildDir/image/bin")
}
copy {
from 'C:\\Program Files\\Java\\javafx-sdk-14.0.1\\bin\\glass.dll',
'C:\\Program Files\\Java\\javafx-sdk-14.0.1\\bin\\javafx_font.dll',
'C:\\Program Files\\Java\\javafx-sdk-14.0.1\\bin\\prism_d3d.dll',
'C:\\Program Files\\Java\\javafx-sdk-14.0.1\\bin\\prism_sw.dll'
into("$buildDir/image/bin")
}
}
< /code>
Beachten Sie, wie ich einige DLL-Files in tasks.jlink.dolast aufgenommen habe. Ohne sie stürzt das Programm immer wieder ab und bezieht sich auf den Quantenrenderer. < /p>
[*] Installieren Sie OpenJDK-140.1-Binärdateien und setzen oben erwähnt) < /li>
< /ul>
Originalfrage < /h2>
/>
Ich versuche, ein Laufzeitbild aus einem Projekt zu erstellen, das ich in Javafx 11 implementiert habe, indem ich nur die Funktionalität "Konfiguration ausführen" in Intellij verwendet habe. Mir scheint hier ein großes [url=viewtopic.php?t=11587]Problem[/url] zu sein, dass mein Wissen über Maven /Gradle fast nicht existiert und dass diese Build-Tools für diesen Schritt von entscheidender Bedeutung sind. : \ Programmdateien \ Java < /code> Ich habe installiert: < /p>
javafx-sdk-11.0.2
[*]
Code: Select all
jdk-13.0.2< /code> < /li>
< /ul>
Ich habe die VM-Optionen in Intelljs "Ausführen" -Konfiguration als-Modul-path "C: \ Programm konfiguriert Dateien \ java \ javafx-sdk-11.0.2 \ lib "--add-modules javafx.controls, javafx.fxml
Meine Frage ist: Wie gehe ich am besten fort und welche Konfigurationen /zusätzlichen Dateien müssen ich dieses Projekt "Klicken auf das Run-inside-ide" in ein "in ein" verwandeln. eigenständige Anwendung " dass ich per E-Mail oder ähnliches teilen kann? ) und kopieren Sie die Quelldateien in SRC/Main/Java. Ich habe dann das bereitgestellte Build -Gradle -Datei ausprobiert und - danach nicht funktioniert - einige Änderungen vorgenommen, die von verschiedenen Blogs/Foren/usw. vorgeschlagen wurden. Keiner von ihnen erlaubte mir, das Projekt durch Intellij oder aus der Befehlszeile auszuführen. Ausführen "oder rufen Sie die" java -jar -Datei.jar "an. Ich habe Fehlermeldungen aufgrund von Klassenausnahmen oder sagen, dass mir die Javafx -Module immer noch vermisse. Ich habe auch einen Ansatz versucht, mein aktuelles Projekt in ein Absolventenprojekt umzuwandeln, aber das würde mich nicht einmal das Projekt anschließend erstellen lassen. < /P>
Bearbeiten #1 (jPackageScriptfx) < /h2>
Ich habe mir die jpackageScriptfx-Link angesehen. Jetzt erhalte ich einen Installateur (mit der MVN Clean Install ), die auf meinem Computer funktioniert. Bei Ausführen der resultierenden ausführbaren Datei werde ich jedoch eine Fehlermeldung mit der Aufschrift "Nicht starten Sie JVM".
Was ich bisher getan habe, ist: < /p>
Installiert JDK-140.1 und setzen Sie java_home Anwesend Installierte WIX311
[*] Erstellt ein neues Intellij Maven -Projekt namens "Bachelor_Maven"
[*] Initial entfernt src-ultner
[*] Neues Modul "ZKP_Inspector" und meine alten Module im Rahmen des resultierenden Hinzufügens hinzugefügt SRC/Main/Java -Ordner
[*] SRC/Main/Logo/Windows/Duke.ICO hinzugefügt und bearbeitet, die beiden pom.xml -Dateien und build_app.bat von JPackageScriptfx
[*] Implementierte Applacher.java, die aufruft Main.java < /p> < /li>
< /ul>
Meine Konfigurationsdateien: < /p>
< Br /> Neue Projektstruktur: imgur < /p> < /li>
pom.xml (Projektebene, Bachelor_Maven): Pastebin
[*]
pom.xml (Modulstufe, ZKP_inspector): Pastebin
Build_App. Fledermaus: Pastebin < /p> < /li>
< /ul>
Bearbeiten #2
Ich habe versucht,-Runtime-Image-Ziel/Java-Runtime ^ aus den JPackage-Parametern in der Datei Build_App.bat zu entfernen, um JPackage zu entscheiden lassen Was zu beinhalten. Dies erhöhte die Dateigröße des Installationsprogramms (wie erwartet), führte jedoch zu dem gleichen Fehler, wenn Sie versuchten, das resultierende Programm auszuführen. Sie in der JLink-Aufgabe in der hier angedeuteten Build_App.bat. %DESTECTED_MODULES%,%Manual_Modules% ^< /code> mit < /p>
Code: Select all
--module-path "C:\Program Files\Java\javafx-jmods-11.0.2" --add-modules %detected_modules%,%manual_modules%,javafx.controls,javafx.fxml
Dies produzierte einen weiteren Installateur, der gut lief und dessen resultierendes Programm den gleichen Fehler warf.