manifest.mf

CConraths

Aktives Mitglied
Hallo ich versuche eine ausführbare .jar Datei meines Projektes zu erstellen(PF11).
Im log sehe ich auch das die jar erstellt wurde.
Leider startet mein Programm nicht wenn ich die .jar ausführe.
In Beiträgen zu diesem Thema ist von einer manifest.mf die Rede die unter "Files" zu finden sein soll und bei der .jar-Erstellung automatisch generiert wird. Diese ist nicht vorhanden.
Das Projekt ist unter JAVA-MAVEN Java Application erstellt

Was mache ich falsch ??
Danke für jede Hilfe
 

CConraths

Aktives Mitglied
Hallo KonradN
danke für die schnelle Hilfestellung
ich habe mir den von dir eingestellten Link aufgerufen bin aber nicht sicher dies zu interpretieren
Meine pom.xml sieht so aus


Java:
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>mavenproject1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.my</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>3.0.3</version>
        </dependency>
        <dependency>
            <groupId>org.mmyy</groupId>
            <artifactId>my-sql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>19</maven.compiler.source>
        <maven.compiler.target>19</maven.compiler.target>
        <exec.mainClass>com.mycompany.mavenproject1.Mavenproject1</exec.mainClass>
    </properties>
</project>

im Link wird ja die Einbindung der Maven jar via plugin beschrieben

bei meinen available plugins ist maven nicht gelistet
installiert ist es auch nicht
 

mihe7

Top Contributor
bei meinen available plugins ist maven nicht gelistet
Maven ist kein Plugin sondern das Build-Tool, das die pom.xml verarbeitet.

Vereinfacht gesagt ist Maven ein Tool, das Plugins aufruft. Dabei gibt es einen vom packaging-type abhängigen Ablauf, nach dem bestimmte Plugins aufgerufen werden. Standardmäßig ist der packaging-type jar, den Du in Deiner pom.xml auch oben angegeben hast, daher findet das Plugin maven-jar-plugin Anwendung und dieses kannst Du entsprechend konfigurieren.

installiert ist es auch nicht
Bringt Deine IDE automatisch mit.
 

CConraths

Aktives Mitglied
halo mihe7
danke für die Erklärung

was muss ich dann aber noch integrieren um eine .jar Datei zu erstellen die lauffähig ist

Das mit PF11 funktioniert ja und das LOG sieht so aus
Java:
cd C:\Users\Christian\Documents\NetBeansProjects\mavenproject1; "JAVA_HOME=C:\\Program Files\\Java\\jdk-19" cmd /c "\"C:\\Program Files\\NetBeans-15\\netbeans\\java\\maven\\bin\\mvn.cmd\" \"-Dmaven.ext.class.path=C:\\Program Files\\NetBeans-15\\netbeans\\java\\maven-nblib\\netbeans-eventspy.jar\" install"
Scanning for projects...

--------------------< com.mycompany:mavenproject1 >---------------------
Building mavenproject1 1.0-SNAPSHOT
--------------------------------[ jar ]---------------------------------
The POM for org.my:mariadb-java-client:jar:3.0.3 is missing, no dependency information available
The POM for org.mmyy:my-sql-connector-java:jar:8.0.28 is missing, no dependency information available

--- maven-resources-plugin:2.6:resources (default-resources) @ mavenproject1 ---
Using 'UTF-8' encoding to copy filtered resources.
skip non existing resourceDirectory C:\Users\Christian\Documents\NetBeansProjects\mavenproject1\src\main\resources

--- maven-compiler-plugin:3.1:compile (default-compile) @ mavenproject1 ---
Nothing to compile - all classes are up to date

--- maven-resources-plugin:2.6:testResources (default-testResources) @ mavenproject1 ---
Using 'UTF-8' encoding to copy filtered resources.
skip non existing resourceDirectory C:\Users\Christian\Documents\NetBeansProjects\mavenproject1\src\test\resources

--- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ mavenproject1 ---
Nothing to compile - all classes are up to date

--- maven-surefire-plugin:2.12.4:test (default-test) @ mavenproject1 ---

--- maven-jar-plugin:2.4:jar (default-jar) @ mavenproject1 ---
Building jar: C:\Users\Christian\Documents\NetBeansProjects\mavenproject1\target\mavenproject1-1.0-SNAPSHOT.jar

--- maven-install-plugin:2.4:install (default-install) @ mavenproject1 ---
Installing C:\Users\Christian\Documents\NetBeansProjects\mavenproject1\target\mavenproject1-1.0-SNAPSHOT.jar to C:\Users\Christian\.m2\repository\com\mycompany\mavenproject1\1.0-SNAPSHOT\mavenproject1-1.0-SNAPSHOT.jar
Installing C:\Users\Christian\Documents\NetBeansProjects\mavenproject1\pom.xml to C:\Users\Christian\.m2\repository\com\mycompany\mavenproject1\1.0-SNAPSHOT\mavenproject1-1.0-SNAPSHOT.pom
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time:  2.691 s
Finished at: 2022-10-15T12:07:49+02:00
------------------------------------------------------------------------

ist "mavenproject1-1.0-SNAPSHOT.jar" die lauffähige datei weil wenn ja
beim starten der jar passiert nichts
gibt es da ein log das man zu Rate ziehen kann ??
 

KonradN

Super-Moderator
Mitarbeiter
Ruf die jar Datei auf der Kommandozeile auf - dann siehst du auch die Fehlermeldung und kannst dann darauf reagieren.

Also einfach in das Target Verzeichnis wechseln und ein java -jar mavenproject1-1.0-SNAPSHOT.jar aufrufen.

Und ganz am Rand: das ist nicht mehr der bevorzugte Weg, Java Software weiter zu geben und ein Doppelklick auf ein jar File ist extrem fehleranfällig.
 

KonradN

Super-Moderator
Mitarbeiter
Wie sieht denn deine pom aus? Hast Du denn das Maven jar Plugin hinzugefügt? Im Code in #3 fehlte dies noch.

Das ist ja in der verlinkten SO Dokumentation mit angegeben - da war dann:
XML:
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        ...
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>fully.qualified.MainClass</mainClass>
            </manifest>
          </archive>
        </configuration>
        ...
      </plugin>
mit drin.
 

Oben