Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
bin Neuling und habe ein kleines Javafx Programm (Klasse und main in einer einzigen Klasse) mit Eclipse und Maven geschrieben. Wenn ich das ganze nun al runnable jar aus Eclipse in mein Windows 10 exportiere, öffnet sich mein Programm leider nicht. Bekomme aus der Konsole diesen Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen
Habe JavaFX aber installiert, fehlt hier nur die Verknüpfung? Kann ich diese nicht bereits in Eclipse definieren?
Der Classpath muss natürlich stimmen. Ein Weg, der denkbar wäre, wäre ein "fat jar", also ein jar File, das alle Abhängigkeiten enthält.
(Das funktioniert aber nur, wenn Du die main Methode in einer separaten Klasse hast)
Das ist aber nicht der Weg, den man heutzutage nehmen sollte. Mit den aktuellen Java Versionen sollte man ein Image bauen, das alles enthält. Ich würde auch empfehlen, hier Maven oder Gradle zu nehmen. Dann hast Du die ganze Konfiguration in einer Textdatei, die einfach anzupassen und auch einfach zu teilen ist. Ein Beispiel-Projekt, das mit Maven all sowas macht, findest Du z.B. unter:
Simple JavaFX App with Maven. Contribute to kneitzel/JavaFXMavenApp development by creating an account on GitHub.
github.com
Das Projekt wäre ein super Startpunkt und damit sollte es einfach sein, sowas auszubauen. Du kannst auch gerne von Scratch starten um das Maven Projekt nach und nach aufzubauen. Wenn Du mit Modulen arbeitest und alle Abhängigkeiten eine module-info haben, dann kannst Du rein mit dem openjfx Plugin arbeiten, welches auch im Getting Started von https://openjfx.io beschrieben wird.
Erstmal vielen Dank Konrad, für die sehr ausführliche Antwort. Ich hätte da aber noch ein paar fragen und bitte verzeih mir schon mal, bin noch sehr am Anfang...
Habe keinen Classpath, sondern nur einen Modulepath im Projekt angegeben. Kann es daran liegen? was sollte ich dafür denn in den Classpath eingeben?
Danke für das Beispielprojekt. Habe es mir mal angeschaut, aber könntest du mir vielleicht erklären, wo ich dort genau die richtigen Infos dafür finden kann?
Was ich noch, trotz recherchieren nicht verstanden habe... Die meisten Projekte laufen auch ohne module.info. Habe diese versucht in mein Projekt zu integrieren, aber jetzt bekomme ich im code lauter fehlermeldungen...
Man braucht nicht zwingend eine module-info. Man kann auch durchaus ohne arbeiten. Es gibt nur Probleme, wenn man mit JLink arbeiten will, wie es das openjfx Plugin macht beim javafx:jlink Ziel. In meinem Projekt arbeitet aber alles ganz ohne Module und daher sollte alles so funktionieren. In dem Projekt rufe ich direkt JPackage auf und es gibt keinen JLink Aufruf und das funktioniert auch ganz ohne die Definition von Modulen.
Wenn Du keine module-info.java hast, dann hast Du ein unnamed module. Ein unnamed module hat ein requires auf alle Module und ein exports auf alle Packages. Das ist super, so lange man kein Package öffnen muss.
Danke für das Beispielprojekt. Habe es mir mal angeschaut, aber könntest du mir vielleicht erklären, wo ich dort genau die richtigen Infos dafür finden kann?
Welche Infos fehlen Dir? Wenn Dir etwas Wichtiges fehlt, dann würde ich die Beschreibung noch weiter anpassen. Eine kurze Beschreibung / Quick Start hatte ich ja auf die Schnelle mal zusammen geschrieben.
Es ist so, dass ich gerade einen Online Kurs zu JavaFX mache, habe dann hier im forum gelesen, dass es besser wäre, direkt mit maven zu arbeiten. das möchte ich machen, aber hier öffnete sich eine komplett neue welt, mit der ich grade leicht überfordert bin. Versuche schon den ganzen abend, mein Maven Projekt "login" zu exportieren, aber kriegs einfach nicht hin. Wenn ich in Eclipse auf Export gehe, wähle runnable jar files aus, next, dann kann ich mein projekt login im dropdown menu unter launch configuration nicht finden. Kannst du mir erklären warum? Bin seit stunden dabei aber komme einfach nicht voran 😖
Wenn du ein Maven-Projekt hast solltest du das auch mit Maven erstellen/bauen. Also einfach rechte Maustaste auf das Project -> Run as -> Maven build. Dann erscheint ein Dialog, dort trägst du deine Goals ein, z.B.: clean install. Anschließend auf Run drücken. Das fertige JAR findest du dann unter dem Ordner target -> wenn du nichts anderes eingestellt hast. Du kannst in dem genannten Dialog alles machen, was auf der Kommandozeile auch möglich ist. Möchtest du die Einstellungen mal ändern kannst du das über das Menü oder die Tollbar über Run->Run Configurations oder Debug ->Debug Configurations machen. Ansonsten gibt es da auch noch ein umfangreiches Hilfesystem in Eclipse, wo das alles erklärt ist.
Du kannst dein Projekt natürlich auch im Terminal bauen, also (Eclipse-)Terminal öffnen, auf den richtigen Ordner achten und 'mvn clean install[ENTER]' eintippen - fertig. Dazu muss Maven natürlich auf deinem Rechner installiert sein, also außerhalb von Eclipse.