.Jar kann man nicht ausführen

tanechka

Bekanntes Mitglied
Hallo,

ich habe momentan das Problem, dass ich meine .jar in der CMD nicht ausführen kann.
Folgende Meldung habe ich:
Code:
Fehler: Hauptklasse Main kann nicht initialisiert werden
Ursache: java.lang.UnsupportedClassVersionError: org/eclipse/jface/viewers/IContentProvider has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
Dabei habe ich JAVA 11 im Einsatz:
Code:
java -version
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor='Sun Microsystems Inc.'
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment Zulu11.62+18-SA (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM Zulu11.62+18-SA (build 11.0.18+10-LTS, mixed mode)
Code:
>javac -version
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor='Sun Microsystems Inc.'
javac 11.0.18
Bei den Run Configuration->JRE habe ich project execution environemnt 'Java SE11' stehen
Bei den Java->Installed JRE habe den Pfad zu eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_19.0.1.v20221102-1007_plusCert\jre

Soweit ich die Meldung verstehe, habe ich mit Java 17 kompiliert? Könntet ihr mir bitte weiterhelfen? Wie kriege ich die Jar zum Ausführen?

Vielen Dank
 

KonradN

Super-Moderator
Mitarbeiter
Wie Du siehst, hast Du auf der Kommandozeile Java 11 im Einsatz aber Du nutzt in der Entwicklungsumgebung ein neueres Java.

Einfachste Lösung: habe auch ein neueres Java auf der Kommandozeile. Das zusammen mit der Nutzung von Maven oder Gradle ist aus meiner Sicht immer das einfachste. Zumal man dann alle Einstellungen in Textdateien hat und man nicht in Einstellungsdialogen herum pfuschen muss!

Denn das Einstellen von der verwendeten Java Version betrifft nicht nur die Auswahl des JDKs sondern man kann auch einstellen, was man genau als Source / Target haben will (bzw. die Java Release Version).
In Eclipse finden sich diese Einstellungen in den Properties des Projekts unter Java Compiler. Da kannst Du den ersten Haken heraus nehmen, dass er den Default nehmen soll um dann im Dropdown das auszuwählen, was Du haben willst.


An der Stelle aber auch direkt der Hinweis: Mit Java 9 wurde JLink eingeführt, mit Java 14 JPackage. Damit hat sich die Weitergabe von Anwendungen verändert und es ist nicht mehr üblich, ausführbare JAR Dateien weiter zu geben. Statt dessen werden Images gebaut und diese weiter gegeben. An der Stelle kann ich also nur wieder darauf verweisen, dass ich zu Maven (oder Gradle) raten würde. Da kann man dann gewisse Dinge einfach übernehmen und hat dann direkt einen Aufbau, der funktioniert ohne in komplexen Settingsdialogen verloren zu gehen.
 

tanechka

Bekanntes Mitglied
Ich habe Maven im Einsatz:
Code:
<maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
Ich soll auch bei Java 11 bleiben. Als Output von Maven habe ich mein Packet mit der Jar.
An welcher Stelle habe ich Java 14/17 im Einsatz?
 

KonradN

Super-Moderator
Mitarbeiter
Wie erstellst Du denn das Jar File? Ich vermute, dass Du Eclipse Methoden verwendest und nicht Maven.

Du musst in Eclipse einfach nur Maven mit dem Ziel "package" aufrufen.

Und statt source und target zu setzen ist es üblich, nur maven.compiler.release zu setzen. Aber das sollte bei Deiner Problematik keine Rolle spielen.
 

tanechka

Bekanntes Mitglied
Beim Maven-Build steht in der Console:
eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_19.0.1.v20221102-1007_plusCert\jre\bin\javaw.exe

Soll ich vielleicht bei den Installed JRE die jdk 11 definieren?
 

tanechka

Bekanntes Mitglied
Danke,

so ähnlich habe ich auch schon stehen:
Code:
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.9.0</version>
                <configuration>                   
                    <release>11</release>
                    <forceJavacCompilerUse>true</forceJavacCompilerUse>
                </configuration>
            </plugin>
 

KonradN

Super-Moderator
Mitarbeiter
Ok, das mit dem Run as -> Maven build sollte den Maven build starten. Aber in der Console sollte dann eine Ausgabe von Maven zu sehen sein von wegen:
Code:
[INFO] Scanning for projects...
[INFO]
[INFO] [1m----------------------< [0;36mde.kneitzel:javamavenapp[0;1m >----------------------[m
[INFO] [1mBuilding javamavenapp 1.0-SNAPSHOT[m
[INFO]   from pom.xml
[INFO] [1m--------------------------------[ jar ]---------------------------------[m
[INFO]
(Die Namen sind natürlich dann die von Deinem Projekt!)

Ansonsten zeige einmal die ganze pom.xml. Dann kann man schauen, ob man einen Fehler findet.

Bezüglich dem Hinweis von @Oneixee5: Der Weg, wie Du es gesetzt hast, ist auch ok. Du kannst die Properties maven.compiler.source und maven.compiler.target nutzen statt dies im Plugin selbst anzugeben. Wenn Du es darüber ausprobieren willst, dann solltest Du die properties heraus nehmen, damit Du nicht eine Einstellung an mehreren Stellen machst.
 

tanechka

Bekanntes Mitglied
Das Build läuft durch:
Code:
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;32mBUILD SUCCESS[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time:  53.370 s
[[1;34mINFO[m] Finished at: 2023-06-29T09:09:00+02:00
[[1;34mINFO[m] [1m------------------------------------------------------------------------
An der pom hat sich seit langem nichts geändert, es liegt wahrscheinlich an den Settings von Eclipse. Ich habe unter Installed JRE nur den Pfad zu der JRE(eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_19.0.1.v20221102-1007_plusCert\jre) stehen und nicht zu der JDK. Könnte das das Problem sein?
 

httpdigest

Top Contributor
Schau doch einmal noch auf die tatsächliche Fehlermeldung:
java.lang.UnsupportedClassVersionError: org/eclipse/jface/viewers/IContentProvider ...
Du bindest also eine Klasse ein, die ja offensichtlich nicht von dir selbst kommt, also auch nicht von dir als Teil deines Projektes kompiliert wird.
Es kommt von Eclipse bzw. ist die jface Library.
Und offensichtlich hat man hier gedacht, dass es eine gute Idee sei, das nur noch mit Java 17+ lauffähig zu machen.
Du musst hier also Java 17 verwenden, weil deine Eclipse-Installation (oder die Jface Library, die du einbindest) hier Java 17 voraussetzt (denke daran, Eclipse selbst bringt sein eigenes JRE mit und ist nicht auf ein im System vorhandenes JRE angewiesen). Aber vermutlich bindest du halt einfach die jfaces Library ein.
 

tanechka

Bekanntes Mitglied
Aus meinem Pom:
Code:
    <dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.swt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
            <version>3.118.0</version>
        </dependency>
        <!-- The core databinding framework -->
        <dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.core.databinding</artifactId>
            <version>1.9.0</version>
        </dependency>

        <!-- databinding to Java beans -->
        <dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.core.databinding.beans</artifactId>
            <version>1.6.100</version>
        </dependency>

        <!-- JFace and SWT databinding -->
        <dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.jface.databinding</artifactId>
            <version>1.13.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.eclipse/jface -->
        <dependency>
            <groupId>org.eclipse</groupId>
            <artifactId>jface</artifactId>
            <version>3.3.0-I20070606-0010</version>
        </dependency>
Mit der Java 11 hat alles funktioniert, seit der neuen Version von Eclipse läuft der Build zwar aber die jar kriege ich nicht zum laufen. Ich soll wie gesagt, bei der Java 11 bleiben.
 

tanechka

Bekanntes Mitglied
Wenn ich mit JDK 11 ausführe, kriege ich die Fehlermeldungen:
Code:
error: cannot access ITableColorProvider
  bad class file: L:\MavenLocalRepo\org\eclipse\platform\org.eclipse.jface\3.30.0\org.eclipse.jface-3.30.0.jar(/org/eclipse/jface/viewers/ITableColorProvider.class)
    class file has wrong version 61.0, should be 55.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
 

tanechka

Bekanntes Mitglied
Wenn ich ausführe: mvn -X clean package
habe ich:
Code:
Maven home: D:\WORK\..\apache-maven-3.8.6-bin\apache-maven-3.8.6
Java version: 19.0.1, vendor: Eclipse Adoptium, runtime: D:\eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_19.0.1.v20221102-1007_plusCert\jre
Default locale: de_DE, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Heißt das, das ich mit der Java 19 kompiliert habe?
 

tanechka

Bekanntes Mitglied
In der pom habe ich ja die Java Version definiert:
Code:
    <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>          
        <java.version>11</java.version>

.....

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.9.0</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <release>11</release>
                    <forceJavacCompilerUse>true</forceJavacCompilerUse>
                </configuration>
            </plugin>
 

KonradN

Super-Moderator
Mitarbeiter
Du kannst problemlos mit Java 19 arbeiten. Mit den Einstellungen gibst Du vor, dass Du Source Level 11 und Target Level 11 haben willst. Damit nutzt Du in den Sourcen den Stand Java 11 und erzeugst Java 11 Classes.

Das Problem hat @httpdigest richtig erkannt. Das Problem ist nicht der von Dir übersetzte Code sondern eine Abhängigkeit:
Schau doch einmal noch auf die tatsächliche Fehlermeldung:
java.lang.UnsupportedClassVersionError: org/eclipse/jface/viewers/IContentProvider ...
Du bindest also eine Klasse ein, die ja offensichtlich nicht von dir selbst kommt, also auch nicht von dir als Teil deines Projektes kompiliert wird.
Es kommt von Eclipse bzw. ist die jface Library.

Du musst also entweder die Java Version auf Mindestens Java 17 hochsetzen oder Du nutzt eine ältere Version von jfaces.

Sprich: Statt 3.3.0 könntest Du 3.2.1 ausprobieren:
XML:
<!-- https://mvnrepository.com/artifact/org.eclipse/jface -->
<dependency>
    <groupId>org.eclipse</groupId>
    <artifactId>jface</artifactId>
    <version>3.2.1-M20060908-1000</version>
</dependency>

Ich habe aber nicht geprüft, wie dort die Abhängigkeiten aussehen.
 

tanechka

Bekanntes Mitglied
Vielen Dank für euren Rat, ich habe die Versionen der Bibliotheken runtergeschraubt und es läuft jatzt:
Code:
<dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.core.databinding.beans</artifactId>
            <version>1.6.100</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.core.databinding</artifactId>
            <version>1.7.0</version>
        </dependency>
<dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.jface</artifactId>
            <version>3.24.0</version>
        </dependency>
        <!-- JFace and SWT databinding -->
        <dependency>
            <groupId>org.eclipse.platform</groupId>
            <artifactId>org.eclipse.jface.databinding</artifactId>
            <version>1.13.0</version>
        </dependency>
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
buggy84 Ausführen einer Batch mit Parameterübergabe funktioniert nicht richtig Allgemeine Java-Themen 18
D swingset3.jnlp lässt sich nicht ausführen Allgemeine Java-Themen 2
F paintComponent() nicht automatisch ausführen? Allgemeine Java-Themen 5
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
P jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 5
J Java programm lässt sich in win7 nach linux install nicht mehr ausführen Allgemeine Java-Themen 18
I java.exe beendet nicht nach ausführen von .jar Allgemeine Java-Themen 4
P Kann .jar nicht ausführen - main class not found Allgemeine Java-Themen 6
S Javaprogramm lässt sich nicht per .bat Datei ausführen. Allgemeine Java-Themen 22
V Fehlerfreie Java-Programme lassen sich nicht ausführen Allgemeine Java-Themen 2
B jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 10
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8
M Warum bekommen ich den Result nicht ? Allgemeine Java-Themen 17
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
P Karate API Test läuft nicht durch . initializationError Allgemeine Java-Themen 21
N nicht static und auch nicht new Allgemeine Java-Themen 3
Z macOS java konnte nicht entfernt werden xpc verbindungsfehler Allgemeine Java-Themen 4
T Schaltfläche wird nicht gefunden Allgemeine Java-Themen 4
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
AleXusher Hauptklasse startlösung konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 1
G @PostConstruct Annotation nicht mehr gültig ? Allgemeine Java-Themen 7
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
izoards log4j2 will nicht.... Allgemeine Java-Themen 15
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
I serialVersionUID - explizit vergeben oder nicht? Allgemeine Java-Themen 6
MiMa Vorhandenes das nicht existiert?? Allgemeine Java-Themen 7
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
T Fremde Typen mockt man nicht? Allgemeine Java-Themen 3
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
B neuroph hält beim XOR lernen nicht an Allgemeine Java-Themen 13
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
D Twitch API mit HttpURLConnection läuft nicht? Allgemeine Java-Themen 0
M Test geht auf Travis und mit Github Action schief aber nicht lokal Allgemeine Java-Themen 3
R Threads Clip loop loopt nicht Allgemeine Java-Themen 2
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
OnDemand JMS Messages nicht abgeholt Allgemeine Java-Themen 0
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
A Mp3 Player funktioniert nicht Allgemeine Java-Themen 0
W String -> byte[] -> String - Sieht jemand was ich nicht sehe? Allgemeine Java-Themen 10
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
J Hilfe, Jar Datei kann nicht ausgeführt werden Allgemeine Java-Themen 2
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben