Programm mit Maven erstellen und starten samt Abhängigkeiten

matze86

Bekanntes Mitglied
Ich möchte in Eclipse ein Maven Projekt und dann eine FX Anwendung erstellen.
Zuerst habe ich die Abhängigkeiten in der POM erstellt.
XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>de.matze</groupId>
  <artifactId>wetter</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Wetterdaten</name>
  <description>liefert wetterdaten</description>
  <properties>
    <maven.compiler.target>18</maven.compiler.target>
    <maven.compiler.source>18</maven.compiler.source>
</properties>
  <build>
      
      
      
  <plugins>
      
    <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.8</version>
        <configuration>
            <mainClass>wetter.Start</mainClass>
        </configuration>
    </plugin>
</plugins>



</build>
 
 
  <dependencies>
      
      <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-fxml -->
<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-fxml</artifactId>
    <version>23-ea+3</version>
</dependency>

  <dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>21.0.2</version>
  </dependency>
</dependencies>
 
 
</project>

Dann habe ich eine Klasse mit FX Anwendung erstellt

Java:
public class Start extends Application{

    @Override
    public void start(Stage meinStage) throws Exception {
        System.out.println("start maven");
        Parent root = FXMLLoader.load(getClass().getResource("first.xml"));
        
        //ermitteln von aktuelle Monitoraufloesung
        double breite = Screen.getPrimary().getBounds().getWidth();
        double hoehe = Screen.getPrimary().getBounds().getHeight();
        Scene meineScene = new Scene(root, breite, hoehe);
        
        
        
        meinStage.setTitle("Datenbank");
        meinStage.setScene(meineScene);
        
        
        meinStage.show();
        
        
        
        
    }

    public static void main(String[] args) {
        launch(args);
        

    }
}
Im Netz finde ich Anleitungen dazu, wie man das ganze Ausführt inkl. die Abhängigkeiten von der POM ladet.
Aber da blick ich nicht durch was man da alles machen muss.
Es wird geschrieben erst "Ausführen als > Maven clean", dann auf Run und die Klasse "Start" starten.
Dann gibt mir die Konsole folgenden Fehler aus:
Code:
Fehler: Hauptklasse wetter.Start konnte nicht gefunden oder geladen werden
Ursache: java.lang.ClassNotFoundException: wetter.Start

Wie die Vorgänge nun richtig sind weiß ich leider nicht.
Vielleicht kann jemand sagen ob die POM.xml so richtig ist.
 

mihe7

Top Contributor
Die Datei Start.java liegt unter src/main/java/wetter? Eine Datei module-info.java existiert in Deinem Projekt nicht, oder?
 

KonradN

Super-Moderator
Mitarbeiter
Ja sie liegt unter src/main/java/wetter
Also auch alles klein geschrieben? Hier wird auch auf Gross-/Kleinschreibung geachtet.

Nein, wozu dient sie?
Damit würde man Module beschreiben. Eine Seite zu dem Java Modul-System:
Java 9: Das neue Modulsystem Jigsaw - Tutorial | Informatik Aktuell (informatik-aktuell.de)

Wenn Du keine module-info.java hast, dann ist es aber erst einmal ok. Wobei das zu Problemen führen könnte, weil der FXMLLoader dann ggf. nicht die notwendigen Rechte hat, aber das ist bezüglich des aktuellen Problems erst einmal egal.

Wie versuchst du die Anwendung zu starten? Nutzt du Maven mit dem Ziel javafx:run dazu?
Hast Du evtl. noch mehr Meldungen? Ein weitergehender Stacktrace oder so?
 

matze86

Bekanntes Mitglied
Also auch alles klein geschrieben? Hier wird auch auf Gross-/Kleinschreibung geachtet.
Ja komplett klein geschrieben.

Die Anwendung starte ich normal mit Run Start.
Wie ich noch gelesen habe sollte man, wenn man etwas in der POM ändert erst Aktualisieren und dann Maven clean ausführen.
Ich weiß nicht ob das richtig ist.
 

KonradN

Super-Moderator
Mitarbeiter
Du hast ein Maven Projekt mit dem JavaFX Plugin. Du kannst die JavaFX Anwendung darüber starten. Dazu startest Du das Maven Ziel javafx:run.

Funktioniert es damit? Ansonsten ist die Frage, was Deine Entwicklungsumgebung Du wie nutzt. Du kannst die Run Configuration prüfen, was die Entwicklungsumgebung macht, wenn Du dieses Run Start machst. Ich kenne mich mit Eclipse aber nicht gut genug aus um zu wissen, was da evtl. falsch sein könnte bei Dir. Aber über Maven könnte man schauen, ob es prinzipiell starten kann. Die Ausgabe vom maven Lauf könntest Du dann auch einmal zeigen, wenn es weiter nicht geht.
 

matze86

Bekanntes Mitglied
Dazu startest Du das Maven Ziel javafx:run.
In der shell Konsole?

Ich nutze Eclipse.
Ich habe bemerkt wenn ich zuerst RUN > Maven Clean ausführe, und dann als Java Anwendung (also die Start Klasse) dann kommt folgender Fehler:
Code:
Fehler: Hauptklasse wetter.Start konnte nicht gefunden oder geladen werden
Ursache: java.lang.ClassNotFoundException: wetter.Start
 

LimDul

Top Contributor
Maven Clean löscht alle kompilierten Klassen. Danach muss man erst mal kompilieren (Sollte Eclipse aber automatisch machen, wenn man den automatischen Build nicht deaktiviert hat)
 

LimDul

Top Contributor
Ist der Automatische Build aktiv? Ansonsten mal Project => Build Project ausführen.

Maven clean brauchst du eher selten.
 

KonradN

Super-Moderator
Mitarbeiter
Auf dem Bild sieht man, dass target leer ist, d.h. es wurde kein maven build durchgeführt.

Und Du kannst auch das Maven Ziel javafx:run über eclipse starten. Dazu muss es einen Menüeintrag geben, der dann ein kleines Fenster öffnet zur Eingabe des Ziels. Und wenn Du das ausprobierst, dann siehst Du, ob das Maven Projekt soweit erst einmal ok ist und ob es einfach nur ein Problem mit der IDE / der Bedienung ist.
 

matze86

Bekanntes Mitglied
Mhh, ich kann nur in Eclipse ein Terminal öffnen. Aber das ist das gleiche wie wenn ich im System (linux) das Terminal öffne.
Aber da bringt die Eingabe javafx:run nichts.
 

KonradN

Super-Moderator
Mitarbeiter
Also Rechtsklick z.B. auf das Menü und du solltest ein Menü bekommen incl. einem "Run As" Menu:
Bildschirmfoto 2024-03-12 um 21.03.40.png

Wenn Du "Maven build..." auswählst, dann öffnet sich ein Fenster:
Bildschirmfoto 2024-03-12 um 21.05.44.png
Und bei "Goals" kannst Du die Ziele eingeben, also javafx:run

Das wäre ein Weg, Maven über Eclipse zu starten.
 

matze86

Bekanntes Mitglied
Ahh bei Maven Build und Goals.
Ich habe es ausgeführt und das Programm wird richtig ausgeführt.

Jetzt liegt es wahrscheinlich irgendwie an der IDE Eclipse.
Aber target ist immer noch leer.
 

matze86

Bekanntes Mitglied
Da hat die Entwicklungsumgebung vermutlich nur nicht aktualisiert.
Ja so war es auch.
"Gewöhnliche" Eclipse IDE oder mit (vor)installierten Enterprise-, JavaFX-, ... -Plugins ? Aber unter https://openjfx.io/openjfx-docs/#maven findet sich ein Tutorial zum Orientieren.
So wie das gelesen habe, kann ich, damit die JavaFX Module erkannt erden, nur über Ausführen als > Maven Build machen. wenn ich in Eclipse die Klasse Start nur die Java Anwendung starte, dann findet Eclipse die Module nicht.
 

matze86

Bekanntes Mitglied
Bevor ich es mit Maven erstellt habe, habe ich die JavaFX Modul auf dem Rechner kopiert, und in VM-Argumente (--module-path="/home/user/Downloads/javafx-sdk-21.0.2/lib" --add-modules=javafx.controls,javafx.fxml") angegeben.

Ich dachte wenn man ein Maven Proekt mit der POM und darin enthaltenen Abhängigkeiten erstellt, braucht man die VM-Agumente nicht mehr wenn ich es als Java Ausführe?
 

KonradN

Super-Moderator
Mitarbeiter
Also die javafx sdk muss nicht installiert sein und muss daher auch nicht angegeben werden.

Der Start aus der Entwicklungsumgebung sollte auch funktionieren - da kann es aber notwendig sein, eine Main Methode in einer Klasse zu haben, die von keine JavaFX Anwendung erbt.
 

matze86

Bekanntes Mitglied
Ja genau, ich habe, bevor ich von Application erbe, die Anwendung von der Entwicklungsumgebung ausführen können.

Heißt ich muss jetzt in der Main Methode eine Klasse starten, die dann letztendlich dann ne Klasse starten die von Application erbt?
 

matze86

Bekanntes Mitglied
Super, hat funktioniert danke.

Wobei bei mir noch eine Warnung kommt:
Code:
März 17, 2024 12:15:17 PM com.sun.javafx.application.PlatformImpl startup
WARNUNG: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @6fa4fbe3'
 

KonradN

Super-Moderator
Mitarbeiter
Die Meldung kannst Du meiner Meinung nach ignorieren. Die Meldung besagt, dass Du die JavaFX Module einfach über das unnamed Module Deiner Anwendung geladen hast statt über die Module wie es normalerweise vorgesehen ist.
 

matze86

Bekanntes Mitglied
OK vielen dank.
Aber warum muss man erst eine extra Klasse erstellen die dann eine Methode mit dem Start der Gui-Anwendung startet (launch(args))?
 

KonradN

Super-Moderator
Mitarbeiter
Aber warum muss man erst eine extra Klasse erstellen die dann eine Methode mit dem Start der Gui-Anwendung startet (launch(args))?
Das ist ein Problem beim Laden und Initialisieren der Klassen. Die ganz genauen Details hatte ich mir mal etwas angesehen vor paar Jahren, aber ich erinnere mich ehrlich gesagt nicht mehr an die Details.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M javafx wird in einem alten programm nicht bei maven gefunden Tools - Maven, Gradle, Ant & mehr 15
D maven webstart Programm - wie? Tools - Maven, Gradle, Ant & mehr 15
D Java Programm veröffentlichen am Besten modular Tools - Maven, Gradle, Ant & mehr 28
K Server-Programm auf Openshift-Server zum Laufen bringen Tools - Maven, Gradle, Ant & mehr 0
O Installer, generierbar aus Programm Tools - Maven, Gradle, Ant & mehr 3
B Junit-Programm von Kommandozeile über Ant starten Tools - Maven, Gradle, Ant & mehr 20
D eigenständiges Programm Tools - Maven, Gradle, Ant & mehr 3
N Wie Java-Programm zu Applet machen?! Tools - Maven, Gradle, Ant & mehr 2
F Kleines Java-Programm geschrieben, 30 Dateien? Tools - Maven, Gradle, Ant & mehr 16
D Externes Programm mit Ant starten Tools - Maven, Gradle, Ant & mehr 3
T Applet soll Java Programm starten Tools - Maven, Gradle, Ant & mehr 2
G Java-Programm auf IIS Tools - Maven, Gradle, Ant & mehr 4
M Zusammenhängendes Programm Tools - Maven, Gradle, Ant & mehr 5
Oneixee5 Maven deploy - per SSH Tools - Maven, Gradle, Ant & mehr 6
H Maven kein Hauptmanifestattribut Tools - Maven, Gradle, Ant & mehr 10
D Interne Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 51
J log4j2 mit Hibernate über Maven Tools - Maven, Gradle, Ant & mehr 10
thor_norsk Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf IntelliJ IDE starten Tools - Maven, Gradle, Ant & mehr 8
H Maven JUnit5 Tests werden ignoriert Tools - Maven, Gradle, Ant & mehr 5
thor_norsk Maven Tools - Maven, Gradle, Ant & mehr 32
ExceptionOfExpectation Maven Build Failed: kann nicht von start.spring.io generiertes Projekt auf Eclipse starten Tools - Maven, Gradle, Ant & mehr 20
Ich kann Maven nicht als UmgebungsVariable hinzufügen Tools - Maven, Gradle, Ant & mehr 2
F Maven JAR Plugin Probleme Tools - Maven, Gradle, Ant & mehr 4
W Was "braucht" man denn alles? Maven, Ant, Git, ... Tools - Maven, Gradle, Ant & mehr 21
N Fehler beim Imgui mit Maven Tools - Maven, Gradle, Ant & mehr 7
M Spring Boot Maven pom.xml-Eintrag Tools - Maven, Gradle, Ant & mehr 17
Encera JavaFX und Maven funktioniert nicht Tools - Maven, Gradle, Ant & mehr 1
B maven multi module Projekt und unnötige/zusätzliche Leerzeilen Tools - Maven, Gradle, Ant & mehr 4
J Maven Konfusion Tools - Maven, Gradle, Ant & mehr 7
Tippster Maven Sqlite integrieren (Eclipse, Maven) Tools - Maven, Gradle, Ant & mehr 4
T Image kreieren mit Maven bei JavaFX und nicht modularen Jars Tools - Maven, Gradle, Ant & mehr 12
T JSON Dependencies in Maven Tools - Maven, Gradle, Ant & mehr 7
T JavaFX, Jar über Maven kreieren Tools - Maven, Gradle, Ant & mehr 2
Encera Libraries Maven Projekt hinzufügen Tools - Maven, Gradle, Ant & mehr 9
Oneixee5 Maven Phase Tools - Maven, Gradle, Ant & mehr 3
Robertop maven copy-resources nicht in WAR Datei Tools - Maven, Gradle, Ant & mehr 2
T Maven: Probleme beim Einbinden der Dependencies Tools - Maven, Gradle, Ant & mehr 9
M Mit Maven eine jar Datei bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 1
M Mit Maven eine jar Datei Bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 18
H Maven Maven: <mainClass>NAME?</mainClass> Tools - Maven, Gradle, Ant & mehr 13
H Maven maven-source-plugin is missing Tools - Maven, Gradle, Ant & mehr 5
M Missing Artifact on selbst gehostestes Maven Paket Tools - Maven, Gradle, Ant & mehr 8
M Error code 409 maven Tools - Maven, Gradle, Ant & mehr 5
M github + maven Fehler beim repository erstellen Tools - Maven, Gradle, Ant & mehr 1
M durch Maven wird "var" nicht gefunden Tools - Maven, Gradle, Ant & mehr 4
N Maven Intellij Maven Projekt erstell keine src Tools - Maven, Gradle, Ant & mehr 4
LimDul Maven Einzelne Unit Tests in Maven Builds skippen Tools - Maven, Gradle, Ant & mehr 3
M Maven jpackage-image wird nicht gefunden Tools - Maven, Gradle, Ant & mehr 22
L Maven IntelliJ, Maven und JavaFX + SceneBuilder Tools - Maven, Gradle, Ant & mehr 23
von Spotz Maven und Spring: "Add to classpath" ? Tools - Maven, Gradle, Ant & mehr 29
Kirby.exe Projekt mit Maven kompilieren Tools - Maven, Gradle, Ant & mehr 13
P Maven Projekt Abhängigkeiten auf bekante Schwachstellen prüfen Tools - Maven, Gradle, Ant & mehr 4
H Maven dependency Problem ? Tools - Maven, Gradle, Ant & mehr 23
B Maven und Intellij Tools - Maven, Gradle, Ant & mehr 24
P Maven Test werden nicht ausgeführt . Junit . Maven . Surefire . Eclipse Tools - Maven, Gradle, Ant & mehr 12
yakazuqi Maven Eigene API mit Maven einbinden Tools - Maven, Gradle, Ant & mehr 1
M Was ist besser für den Anfang, Maven oder Gradle? Tools - Maven, Gradle, Ant & mehr 6
P Maven Wie die Maven Project version in JSP page verwenden? Tools - Maven, Gradle, Ant & mehr 2
C Maven Multi-Module Projekt Tools - Maven, Gradle, Ant & mehr 2
T Maven Warnings/Fehlermeldungen Tools - Maven, Gradle, Ant & mehr 12
T Maven und Datenbank(treiber) Tools - Maven, Gradle, Ant & mehr 13
T Maven Runnable Jar Tools - Maven, Gradle, Ant & mehr 5
T Grundlagen Maven und Git/Github Tools - Maven, Gradle, Ant & mehr 2
LimDul Maven Maven Surefire Plugin - Warnings upgrade Tools - Maven, Gradle, Ant & mehr 2
G Maven upload Tools - Maven, Gradle, Ant & mehr 0
K Maven - Parent oder Dependency? Tools - Maven, Gradle, Ant & mehr 5
B Maven Maven deploy Tools - Maven, Gradle, Ant & mehr 4
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
P Nur einen Teilbaum in Maven releasen? Tools - Maven, Gradle, Ant & mehr 7
D Cannot invoke "javafx.scene.control.MenuButton.getScene()" nach konvertierung zu maven Tools - Maven, Gradle, Ant & mehr 3
H Maven - keine Durchführung von Tests Tools - Maven, Gradle, Ant & mehr 12
H Jenkins - maven-jar-plugin - kein jar-file Tools - Maven, Gradle, Ant & mehr 38
P JavaFX jar mit Maven Tools - Maven, Gradle, Ant & mehr 9
P Maven & Intellij Modul kann nicht aufgelöst werden Tools - Maven, Gradle, Ant & mehr 12
H Eclipse JUnit erzeugt Fehler im Maven-Test Tools - Maven, Gradle, Ant & mehr 1
H Maven Anfängerproblem - No plugin found for prefix 'archetype' in the current project and in the plugin groups Tools - Maven, Gradle, Ant & mehr 25
sascha-sphw Maven vs Gradle Tools - Maven, Gradle, Ant & mehr 24
D Maven Maven und die Build-Geschwindigkeit Tools - Maven, Gradle, Ant & mehr 11
K Maven IntelliJ + Maven + JavaFX Tools - Maven, Gradle, Ant & mehr 2
J Maven Mit Maven eine ZIP Datei erstellen Tools - Maven, Gradle, Ant & mehr 0
K Maven install schlägt fehl Tools - Maven, Gradle, Ant & mehr 10
I Problem: Maven import extern Lib Tools - Maven, Gradle, Ant & mehr 3
Tom299 Maven Maven funktioniert nach Installation nicht Tools - Maven, Gradle, Ant & mehr 1
I Maven Interface hinzugefügt - Error Tools - Maven, Gradle, Ant & mehr 1
M Verständnisfrage Maven Tools - Maven, Gradle, Ant & mehr 2
S Maven installieren - "Befehl wurde nicht gefunden" Tools - Maven, Gradle, Ant & mehr 1
E Maven: Wie Abhängigkeiten analysieren? Tools - Maven, Gradle, Ant & mehr 0
E Maven Maven distributionManagement Vererbung in child POM Tools - Maven, Gradle, Ant & mehr 8
P Maven Parent- Child POMs Tools - Maven, Gradle, Ant & mehr 13
E Release Kandidaten mit Maven bauen Tools - Maven, Gradle, Ant & mehr 4
C Orderstruktur bei Libarys - Wie mit Ant oder Maven lösen? Tools - Maven, Gradle, Ant & mehr 0
G Maven, finde Dependency nicht... Tools - Maven, Gradle, Ant & mehr 2
G Maven Continious Integration mit Jenkins, Maven und Nexus - wie richtig? Tools - Maven, Gradle, Ant & mehr 1
P Maven Parent und Child Poms - dependencies Tools - Maven, Gradle, Ant & mehr 1
reibi Maven Maven + Eclipse Tools - Maven, Gradle, Ant & mehr 0
P Maven add resource Tools - Maven, Gradle, Ant & mehr 0
D [Maven Pluginentwicklung] - Plugin das nur auf Parent pom läuft Tools - Maven, Gradle, Ant & mehr 0
S Maven Maven und Auflösen von JSF EL Tools - Maven, Gradle, Ant & mehr 5
H Maven HSQLDB in den Maven lifecycle einbinden Tools - Maven, Gradle, Ant & mehr 5

Ähnliche Java Themen

Neue Themen


Oben