Die NICHT-JavaFX-Programme kann man aber schon in der command_line ausführen, entweder mit:
java NormalesTestMain
oder:
java -cp /tux/netbeans/tux/netBeansProjects/Test/target/classes at.cube.test.NormalesTestMain
In der command_line ist vorher ClassNotFoundException gekommen...
mit bei der Klassen-Ausführung:
java EinnahmenMain
java at.cube.einnahmen.EinnahmenMain
java einnahmen.EinnahmenMain
java -cp /tux/netbeans/tux/netBeansProjects/Einnahmen/target/classes at.cube.einnahmen.EinnahmenMain
sowohl auch bei der jar-Ausführung mit:
java -jar Einnahmen.jar
danach die Änderung der MANIFEST.MF von
Main-Class: at.cube.einnahmen.EinnahmenMain
auf
Package: at.cube.einnahmen
Main-Class: EinnahmenMain
Jetzt kommt der NoClassDefFoundError (im Unterschied zu ClassNotFoundException !)
Überall und Immer bei JafaFX-Programmen (außer in NetBeans selber !!!)
Meine META-INF/MANIFEST.MF sieht jetzt so aus:
Manifest-Version: 1.0
Build-Jdk-Spec: 18
Package: at.cube.einnahmen
Main-Class: EinnahmenMain
Normalerweise sieht sie aber so aus !?
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.10.8
Created-By: 17+35-2724 (Oracle Corporation)
Class-Path: lib/cutils.jar lib/gson-2.8.5.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: at.cube.einnahmen.EinnahmenMain
Das jar-File habe ich mit
jar cmvf META-INF/MANIFEST.MF Einnahmen.jar *
erstellt.
Bei meiner MANIFEST.MF fehlt der lib classpath !
Welche lib ?
set | grep PATH
PATH=/usr/lib/jvm/jdk-18/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/javafx-sdk-18.0.2/bin
set | grep CLASSPATH
CLASSPATH=.:/usr/share/java/mysql-connector-java.jar
set | grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/jdk-18
set | grep JAVAFX_HOME
JAVAFX_HOME=/usr/lib/jvm/javafx-sdk-18.0.2
pom.xml:
Wie gesagt, bei Netbeans funktioniert alles: der Datenbank-Zugriff auf MySQl und auch JavaFX.
Hier ist die Konfuguration im /opt/netbeans-Verz. bzw. teilweise für javafx auch im /opt/scenebuilder-Verz. !?
Aber das Ganze, was NetBeans betrifft, ist so ziemlich unübersichtlich und fehlerhaft.
Nur 1 Beispiel:
die META-INF/MANIFEST.MF kommen bei NetBeans in den Projekt-Verz. NIE vor !!!
Man muss wissen, dass man diese selber erstellen muss !
Und eclipse ?
Das funktioniert JavaFX gar nicht - bei mir !
java NormalesTestMain
oder:
java -cp /tux/netbeans/tux/netBeansProjects/Test/target/classes at.cube.test.NormalesTestMain
In der command_line ist vorher ClassNotFoundException gekommen...
mit bei der Klassen-Ausführung:
java EinnahmenMain
java at.cube.einnahmen.EinnahmenMain
java einnahmen.EinnahmenMain
java -cp /tux/netbeans/tux/netBeansProjects/Einnahmen/target/classes at.cube.einnahmen.EinnahmenMain
sowohl auch bei der jar-Ausführung mit:
java -jar Einnahmen.jar
danach die Änderung der MANIFEST.MF von
Main-Class: at.cube.einnahmen.EinnahmenMain
auf
Package: at.cube.einnahmen
Main-Class: EinnahmenMain
Jetzt kommt der NoClassDefFoundError (im Unterschied zu ClassNotFoundException !)
Überall und Immer bei JafaFX-Programmen (außer in NetBeans selber !!!)
Meine META-INF/MANIFEST.MF sieht jetzt so aus:
Manifest-Version: 1.0
Build-Jdk-Spec: 18
Package: at.cube.einnahmen
Main-Class: EinnahmenMain
Normalerweise sieht sie aber so aus !?
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.10.8
Created-By: 17+35-2724 (Oracle Corporation)
Class-Path: lib/cutils.jar lib/gson-2.8.5.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: at.cube.einnahmen.EinnahmenMain
Das jar-File habe ich mit
jar cmvf META-INF/MANIFEST.MF Einnahmen.jar *
erstellt.
Bei meiner MANIFEST.MF fehlt der lib classpath !
Welche lib ?
set | grep PATH
PATH=/usr/lib/jvm/jdk-18/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/javafx-sdk-18.0.2/bin
set | grep CLASSPATH
CLASSPATH=.:/usr/share/java/mysql-connector-java.jar
set | grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/jdk-18
set | grep JAVAFX_HOME
JAVAFX_HOME=/usr/lib/jvm/javafx-sdk-18.0.2
pom.xml:
Code:
<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>at.cube</groupId>
<artifactId>Einnahmen</artifactId>
<version>1.0-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>
<!-- MySQL-Connector Configuration: Beginn: -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- MySQL-Connector Configuration: Ende: -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>13</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</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>at.cube.einnahmen.EinnahmenMain</mainClass>
</configuration>
<executions>
<execution>
<!-- Default configuration for running -->
<!-- Usage: mvn clean javafx:run -->
<id>default-cli</id>
</execution>
<execution>
<!-- Configuration for manual attach debugging -->
<!-- Usage: mvn clean javafx:run@debug -->
<id>debug</id>
<configuration>
<options>
<option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000</option>
</options>
</configuration>
</execution>
<execution>
<!-- Configuration for automatic IDE debugging -->
<id>ide-debug</id>
<configuration>
<options>
<option>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</option>
</options>
</configuration>
</execution>
<execution>
<!-- Configuration for automatic IDE profiling -->
<id>ide-profile</id>
<configuration>
<options>
<option>${profiler.jvmargs.arg1}</option>
<option>${profiler.jvmargs.arg2}</option>
<option>${profiler.jvmargs.arg3}</option>
<option>${profiler.jvmargs.arg4}</option>
<option>${profiler.jvmargs.arg5}</option>
</options>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Wie gesagt, bei Netbeans funktioniert alles: der Datenbank-Zugriff auf MySQl und auch JavaFX.
Hier ist die Konfuguration im /opt/netbeans-Verz. bzw. teilweise für javafx auch im /opt/scenebuilder-Verz. !?
Aber das Ganze, was NetBeans betrifft, ist so ziemlich unübersichtlich und fehlerhaft.
Nur 1 Beispiel:
die META-INF/MANIFEST.MF kommen bei NetBeans in den Projekt-Verz. NIE vor !!!
Man muss wissen, dass man diese selber erstellen muss !
Und eclipse ?
Das funktioniert JavaFX gar nicht - bei mir !