• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

JavaFX2/maven

T

Trjavnamen

Bekanntes Mitglied
hallo ich habe einfach mal auf dem häufigsten Weg meine Java fxml anwendung erstellt. FxProjekt unter New>Other>javaFX > Eingabe Projektname >next>next Auswahl Fxml>auswahl Anchorpane >finisch ein Projekt erstellt. Es mit scenebuilder2 mit zwei Textarea und einem Button ausgestattet. und dann eine Application erzeugt. Alles erfolgreich mit odentlich ausgeführten Fenster. Dann habe ich spaßeshalber das ganze zum mavenprojekt convertiert. mit maven clean aufgeräumt und maven install die drei classen und eine jar erzeugt Trotz fehlermeldung mit soursen erzeugen die Maven depenseties erzeugt einen Test ausgelöst und die beiden build optionen. Normaler weise sollte das selbe Fenster erscheinen. aber es tut sich nichts. Dann habe ich mir ein Tutorial angesehen und mitgeschrieben. Aber da tut sich auch nichts. Ich zeig euch mal meine erzeugte und erweiterte pom.xml
Java:
<?xml version="1.0"?>

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">

<modelVersion>4.0.0</modelVersion>

<artifactId>Testtutorial</artifactId>

<version>1.0.0</version>

<name>mann</name>

<description>1.0.0 Allgemeines Ausgangsfenster</description>


-<build>

<sourceDirectory>src</sourceDirectory>


-<resources>


-<resource>

<directory>src</directory>


-<excludes>

<exclude>mann.java</exclude>

</excludes>

</resource>

</resources>


-<plugins>

<!-- Compile -->



-<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.7.0</version>


-<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

<!-- Assembly Jar -->



-<plugin>

<artifactId>maven-assembly-plugin</artifactId>

<version>3.1.0</version>


-<configuration>


-<archive>


-<manifest>

<!-- Syntax packagename.MainJavaName -->


<mainClass>:mann </mainClass>

</manifest>

</archive>


-<descriptorRefs>

<descriptorRef>jar-with dependesies</descriptorRef>

</descriptorRefs>

</configuration>


-<executions>


-<execution>

<id>make-assembly</id>

<phase>package</phase>


-<goals>

<goal>single</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

<groupId>com.trjavnamentonlinede</groupId>

</project>

Hat einer von euch eine Idee oder eine bessere pom . diese ecludes imoberen teil scheint mir suspeckt und hört sich an wie Ausschluß liege ich da richtig?
 
T

Trjavnamen

Bekanntes Mitglied
Ps: das altbekannte Problem: Maven findet die Main nicht ich habe es mit umbenenung und so weiter probiert. Ich habe es auch mit Maven direkt probiert Mit den mvn befehlen ausgelöst im Windows Eingabeaufforderung im pom Verzeichnis auch ohne Erfolg. Und build hat scheinbar aus den class wieder java gemacht.
 
kneitzel

kneitzel

Top Contributor
Wieso gehst Du so einen Weg? Warum beschäftigst Du Dich nicht erst einmal grundsätzlich mit einem Thema? Diverse Dinge wurden Dir ja schon mehrfach genannt ...

Und nein, das exclude ist nicht suspekt sondern notwendig. Aber es zeigt schön auf, wieso der eingeschlagene Weg absoluter Quatsch ist:
Du hast jetzt nur den src Ordner für deine Programm-Dateien und Ressourcen. Da Du aber im JAR am Ende keinen Quellcode mit im jar haben willst, muss man die *.java Dateien bei den Ressourcen heraus nehmen.

Und was genau hast Du wie gemacht? Generell hast Du keinerlei Mainclass angegeben, daher ist jeder Aufruf, der diese nicht angibt, zum scheitern verurteilt.

Daher erst einmal die Frage: Warum setzt Du nicht auf aktuelle Versionen? Wenn es dafür keinen ganz zwingenden Grund gibt, dann würde ich das nicht machen - Es ist sehr vorteilhaft, wenn man auf aktuelle Technology und aktuelle Dokumentation setzt. Gerade als Anfänger macht dies die Sache deutlich einfacher, da so eben nichts durcheinander gewürfelt wird und Du inkompatible Teile zusammen nutzen willst.

Und dann findest du auf openjfx.io im Getting Started Bereich wirklich alles, um einen super Start zu haben.
 
T

Trjavnamen

Bekanntes Mitglied
Ja aber ich habe eine lauffähige Umgebung. Und wie ich schon berichtet habe wollte ich den Erfolg mit maven sichern. Mit der eigenen pom.xml . Das generelle Problem für Anfänger ist doch das wiederholen der erfolgreichen Arbeit. Und mit der richtigen Pom.xml kann man die Abhängigkeiten (mal geladenen Importe wiederholen bzw. neu einpflegen wenn sich die Abhängikeiten upgraden )Der Test mit Maven ist doch nicht verwerflich? Da du aber Gradle hast und du offensichlich ein Profi bist, hast du mit sicherheit etwas für dieses Problem für Gradle oder? Die aktuelle version ist eclipse enterprise jee die standartmäßig mit Jdk 15.0.1 ausgerüstet werden soll. Scenebuilder2 ist für 18.0.xxx also muß man die entsprechende jdk hinterlegen und ggf. in das projekt einfügen. Mit der richtigen pom wird das Automatisch gemacht. Genauso doch auch mit gradle. Und im Tutorial heißt es das Gradel depenseties kompatiebel sind. Warum also nicht nutzen? Und wenn man diese pom weitergibt können Fehler in fehlenden Imports und falschen Library oder doch schneller gelöst werden. Ein zweiter Aspeckt ist wenn etwas im 32 bit Modus enwickelt wurde und dort würde es mit Maven laufen würde doch diese Pom dafür sorgen das die 64 bit library genauso angesprochen werden oder? Es sei denn es ist unerwünscht. Und es gibt auch viele Mitglieder in euren Foren die ein Beispiel herunterladen um es auszuprobieren bzw.nachzuvollziehen ohne evtl vergessene und nicht mitgelieferte Abhängigkeiten mit einzupflegen. Oder von mir schon mal probiert OpenOffice in meine Classe zu integrieren um nur ein eigenes Tool hinzuzufügen. Was kläglich gescheitert ist weil es unendlich viele Importe bedarf um das zu tun. Oder DBBeaver welches ja auch nicht immer in der selben Version vorliegt sondern auch geupdatet wird. In maven gibt man nur die neue Version an und dein altes projekt wird ugegratet. Es funktioniert nur nicht wenn schon bei einem lauffähigen Programm die maven konvertierung nicht funktioniert oder? Oder liege ich da völlig falsch?
 
kneitzel

kneitzel

Top Contributor
Also wenn Du eine lauffähige Umgebung hast dann nutze diese und verändere sie nicht. Dann nutzt Du halt ein reines Eclipse Projekt oder was auch immer inkl. allem, was dazu gehört. Das kann dann auch alles aus uralt Versionen bestehen. Das ist dann wie ein alter VW Käfer. Ja, der knn noch gut laufen. Aber fang nicht an, da lauter Dinge dran zu bauen, die Du irgendwo findest und die nicht für einen VW Käfer gedcht sind, dann wird es nicht mehr funktionieren.

Und wenn Du da etwas ändern willst, dann mach es vernünftig! Und dazu gehört, dass Du mit einer soliden Grundlage anfängst. Also nicht dem VW Käfer (ohne Ahnung von Autos zu haben) einen Porsche Motor verpassen oder so.

Die aktuelle version ist eclipse enterprise jee die standartmäßig mit Jdk 15.0.1 ausgerüstet werden soll.
Das mag da zwar dabei mit installiert werden, aber da kannst Du mit relativ vielen JDKs arbeiten. Aber wichtig ist erst einmal das Verständnis: Eclipse ist nur noch ein nachgelagertes Tool! Wenn Du mit Maven arbeiten willst, dann hast Du erst einmal ein Maven Projekt. Ob und mit welcher IDE Du dann arbeitest, ist nebensächlich.

Scenebuilder2 ist für 18.0.xxx also muß man die entsprechende jdk hinterlegen
Was machst Du da eigentlich? Ich bin mir sicher, dass Dir da schon klare Aussagen gemacht wurden:
a) Warum so alte Software? Nutz was aktuelles: https://gluonhq.com/products/scene-builder/#download => 15.0.1 ist aktuell vorhanden
b) Das ist etwas nachgelagertes. Bring es erst einmal ohne irgendwelche Plugins / Tools zum laufen Also mach erst einmal, was so im Getting Started von openjfx.io beschrieben wurde. Und dann bau es langsam aus. Aber erst einmal die Basis zum laufen bringen und verstehen.
Den SceneBuilder kannst Du ansonsten als externes Tool installieren und nutzen. Aber mit Plugins wäre ich vorsichtig!

Mit der richtigen pom wird das Automatisch gemacht.
NEIN! Mit der POM wird nicht automatisch irgendwas bezüglich verwendetes JDK gemacht. Da wird zwar das eine oder andere konfiguriert, aber es wird das JDK verwendet, mit dem es gerade aufgerufen wurde und auf das JAVA_HOME zeigt. Und wenn das nicht passt (Weil Du z.B. ein Java 8 nutzen willst oder so), dann haut es nicht hin.

Daher noch einmal ganz deutlich:
a) Bereinige den Rechner erst einmal, so dass Du ggf. Schrott los wirst.
b) Aktuelles JDK (OpenJDK 16 wäre das nun)
c) Aktuelles Eclipse (Wenn OpenJDK 16 installiert ist, dann musst Du das 15er wohl nicht mehr installieren beim Installer. Aber ich weiss jetzt nicht sicher, dass es da keine Probleme gibt. Zur Not bleibst Du noch generell beim 15er OpenJDK um da in keine Probleme zu rennen die kurz nach so einem Update auftreten könnten

Sonst nichts! Kein Scene Builder, keine zusätzlichen Plugins oder sonst irgendwas!

Und dann schaust Du Dir das Getting Started auf https://openjfx.io/openjfx-docs/ an.
Unter "JavaFX and Eclipse" findest Du den Punkt "Non-Modular with Maven" -> Da findest Du dann, wie Du ein Maven JavaFX Projekt aufsetzen kannst.

Das ist das Vorgehen, das ich Dir ans Herz legen kann. Ansonsten macht vieles einfach keinen Sinn.



Und wenn Du ein bestehendes (Eclipse) Projekt in ein Maven Projekt umwandeln willst:
a) Verstehe erst einmal, was das Projekt macht
b) dann bau das Projekt entsprechend auf mit Maven. Da würde ich dann auch dazu raten, die Standard Verzeichnisse zu nutzen, also die eigentlichen Java Sourcen landen unter src/main/java und die Ressourcen unter src/main/resources. Dann muss man die Verzeichnisse nicht mehr angeben und braucht keine excludes mehr.
Denn einfach einmal gezielt geschaut, was an plugins benötigt wird incl. welcher Konfiguration um dem jar File ggf. ein Manifest mitzugeben.

Wobei ich erneut darauf hinweise: Üblich ist ab Java 9 ehe, sogenannte Images weiter zu geben (mit JLink erstellt). Bei JavaFX Applikation (die aktuelle Versionen verwenden!) ist dies sehr wichtig, da sonst weitere Probleme bezüglich laden der Application Klasse und der Abhängigkeiten zu lösen sind.
 
T

Trjavnamen

Bekanntes Mitglied
Ja danke tatsächlich funktionier es mit Gradle und Java SE 15 (15.0.1) und den Maven Dependesies (javajx-base\13) eine fxml Aplication zu generieren
 
T

Trjavnamen

Bekanntes Mitglied
da ich maven installiert habe kam für dieses Tutorial dann diese Pom herausKomischer weise mit einer Fehler Meldung eines verweises auf einer hinterlegten javaxr :
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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>or.openjfx</groupId>
    <artifactId>hellofx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>13</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>13</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.4</version>
                <configuration>
                    <mainClass>or.openjfx.hellofx.App</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
 
kneitzel

kneitzel

Top Contributor
Wenn Du uns die genaue Fehlermeldung nennst, dann können wir Dir ggf. auch helfen.

Auf den ersten Blick sieht es ok aus. Teilweise wird nicht die letzte Version benutzt (z.B. das javafx Plugin gibt es schon in Version 0.0.5 und das Compiler Plugin in 3.8.1.) Aber das sollte keine Probleme machen.

Ggf. hast Du dich vertippt - heisst Dein Package wirklich or.openjfx.hellofx? Oder fehlt da das g?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C External Jar einbinden bei Maven Java Basics - Anfänger-Themen 9
C Einbinden von Komponenten mit Maven Java Basics - Anfänger-Themen 3
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
S Maven und externe Library Java Basics - Anfänger-Themen 2
P Maven-Dependencies (package org.apache.http.nio does not exist) Java Basics - Anfänger-Themen 6
D MAVEN Java Basics - Anfänger-Themen 3
B Arquillian installieren - Maven, WildFly, MYSQL Java Basics - Anfänger-Themen 1
O Maven Java Basics - Anfänger-Themen 10
T gradle, maven, ant - was ist das? Java Basics - Anfänger-Themen 2
P Maven und eigene Jars Java Basics - Anfänger-Themen 4
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
elischa Eclipse Plugin Projekt, Maven Projekt und dependencies Java Basics - Anfänger-Themen 5
A JavaScript Object Notation einbinden mittels Maven Java Basics - Anfänger-Themen 7
M Warum ist Maven als Technologie eigentlich so sicher? Java Basics - Anfänger-Themen 0
M Frage zu Maven Plugin für Eclipse IDE Java Basics - Anfänger-Themen 1
M Frage zu Maven Lifecycles Java Basics - Anfänger-Themen 2
M Maven Dependency im Java Projekt Java Basics - Anfänger-Themen 1
K Maven Dependency unklar Java Basics - Anfänger-Themen 5
M Bestehendes Projekt auf Maven umstellen? Java Basics - Anfänger-Themen 5
G Maven Dependency für Oracle JDBC-Driver korrekt festlegen Java Basics - Anfänger-Themen 4
G Erstellen eines Maven Projektes mit Eclipse Java Basics - Anfänger-Themen 9
F frage zu maven Java Basics - Anfänger-Themen 2
G Unterschied zwischen Ant und Maven Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Anzeige

Neue Themen


Oben