Ändern Sie die Implementierung von Javafx 11 in Intellij aus "Build und Run mit JVM -Optionen in IDE", um "Laufzeit im BJava

Java-Forum
Anonymous
 Ändern Sie die Implementierung von Javafx 11 in Intellij aus "Build und Run mit JVM -Optionen in IDE", um "Laufzeit im B

Post by Anonymous »

Bearbeiten #3 (Lösung) < /h2>

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
und
[*]

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 
und setzen Sie die Hauptklasse zu "main.main". .Java ist eine übliche Hauptdatei (Erweiterung der Anwendung, die Start (args) innerhalb von Main). Es kann andere Fenster in den anderen Paketen laden. Es ist nicht eine Launcher-Datei, die die Anwendung nicht erweitert und die tatsächliche Hauptdatei nennt (wie einige Lösungen für den Abschluss des Abschlusses vorgeschlagen). /> Anfangs habe ich versucht, ein .jar-File zu erhalten, das ohne weitere Parameter unter Windows und Linux ausgeführt werden kann. Nach einigen Lesen stellte ich fest, dass dies keine saubere Lösung wäre, und viele Quellen gaben an, dass in modernen Lösungen die .jar-Files mit einer .bat/sh-Datei zusammengestellt und versendet werden, die alle notwendigen Parameter enthält. < /p>

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post