# manifest.mf



## CConraths (15. Okt 2022)

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


----------



## KonradN (15. Okt 2022)

Wenn es ein Maven Projekt ist, dann wird das Manifest in der Regel in der POM konfiguriert.

Das geht z.B. über das maven jar Plugin wie die Antwort hier aufzeigt:








						Maven adding mainClass in pom.xml with the right folder path
					

I want to get a working jar file with my maven project.  The build part is:  <build>     <plugins>         <plugin>             <groupId>org.apache.maven.plugins</groupId...




					stackoverflow.com


----------



## CConraths (15. Okt 2022)

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



```
<?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 (15. Okt 2022)

CConraths hat gesagt.:


> 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.



CConraths hat gesagt.:


> installiert ist es auch nicht


Bringt Deine IDE automatisch mit.


----------



## CConraths (15. Okt 2022)

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

```
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 (15. Okt 2022)

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.


----------



## CConraths (15. Okt 2022)

kein hauptmanifestattribut in mavenproject1-1.0-SNAPSHOT kommt als meldung


----------



## KonradN (15. Okt 2022)

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:

```
<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.


----------



## CConraths (15. Okt 2022)

aua da stand im plugin bei mir nicht maven-jar-plugin drinnen

jetz geht es 

vielen Dank


----------

