Forum: PC-Programmierung Meine Java Programme starten nicht


von LSN (Gast)


Lesenswert?

Hallo
Ich kann auf meinem neuen Win11 Notebook kein selbst erstelltes Java 
Programm (unter Eclipse Java erstellt) Starten.
JRE ist gerade Installiert worden und danach nochmal Upgedatet worden 
Heute.
Mit rechtsklick "öffnen mit" habe ich mehrmals C:\Program 
Files\Java\jre1.8.0_351\bin\java.exe ausgewählt.

Die Arduino IDE Startet doch auch problemlos.
Ich habe alles Ausprobiert.
Ein leeres Programm mit einem leerem JFrame Startet auch nicht.

Innerhalb der Eclipse Java IDE Startet alles was ich programmiert habe 
problemlos.

von MaWin (Gast)


Lesenswert?

Der Fehler ist in Zeile 15 deines Programms.

von LSN (Gast)


Lesenswert?

Ich kann irgendwie gerade keine Beiträge abschicken
obwohl das hier der zweite war. Problem mit der Forum Software

Am Code liegt es nicht. Bin kein Anfänger.

von rbx (Gast)


Lesenswert?

LSN schrieb:
> Am Code liegt es nicht. Bin kein Anfänger.

Sicherheitseinstellungen?

von Mathias (Gast)


Lesenswert?

Willst du eine .jar oder eine .class starten?

von Mathias (Gast)


Lesenswert?

Bei Name.class musst du
> java Name

eingeben. Bei Name.jar
> java -jar Name.jar

Einfach nur "java Name.class/.jar" geht nicht. Wie man das dem Explorer 
beibringt, keine Ahnung. Ich kenn nur Linux.

von LSN (Gast)


Lesenswert?

Ich hatte den Mini Test Code Versucht als Beitrag auf die schnelle
ohne Forum Formatierung abzuschicken, das wurde mehrmals blockiert.
Das war ein JFrame mit setVisible(true);
danach noch mit und ohne while(true){... Thread.sleep(2000); ...}

> Sicherheitseinstellungen?
Das sagt mir leider nicht viel. Ich habe nichts Verändert!

Innerhalb der Eclipse Java IDE läuft das und alle anderen
Programme gut und das auch bevor ich die JRE Installiert hatte.

von JavaIsAuchNurNeInsel (Gast)


Lesenswert?


von LSN (Gast)


Lesenswert?

> Willst du eine .jar oder eine .class starten?
Ein Versuch war executable Jar File erstellen x.jar,
der andere ein Jar File erstellen x.jar

> Eventuell fehlen Pfadangaben:
> https://www.java.com/de/download/help/path_de.html
Ich hatte vorhin schon die PATH Umgebungsvariable in Win11 Menü
gefunden und meine ...x.jar dort korrekt eingetragen aber dasselbe
Man kann beim Starten für ein par millisekunden ein Programmfenster 
sehen

von LSN (Gast)


Lesenswert?

Ich habe nicht Studiert das ist nur mein Hobby.

Mit rechtsklick "immer öffnen mit" C:\Program 
Files\Java\jre1.8.0_351\bin\java.exe
auswählen müsste für alle .jar eigentlich ausreichen aber Funktioniert 
nicht.

von LSN (Gast)


Lesenswert?

> Einfach nur "java Name.class/.jar" geht nicht. Wie man das dem Explorer
> beibringt, keine Ahnung. Ich kenn nur Linux.
Ich habe dein Beitrag leider erst gelesen aber dann beim schreiben 
übersehen

Vorhin hatte ich das über cmd mehrmals probiert aber einen falschen 
Befehl eingegeben.
Jetzt habe

java -jar C:\Users\ ... \Desktop\xx.jar

nochmal eingegeben Ergebnis:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Test5 
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 52.0
...
...

Ich versuche das problem Morgen zu lösen.

Vielleicht fehlt nur
  public static final long serialVersionUID = 1;

Übersetzen googeln u.s.w

von JavaIsAuchNurNeInsel (Gast)


Lesenswert?

Installiere eine neuere Version der JRE.

von LSN (Gast)


Lesenswert?

Danke für die Antworten

Diese Version Java\jre1.8.0_351 wurde durch das Java Update vor 7Stunden 
doch erst Erstellt vorher war da nur ein Ordner mit Java\jre1.8.0_341

über cmd Aufrufe werden die Fehler jedenfalls Angezeigt
Die Fehler Ausgabe auf SSD könnte man vielleicht auch schnell in das 
Programm einbauen.

von JavaIsAuchNurNeInsel (Gast)


Lesenswert?

LSN schrieb:
> Exception in thread "main" java.lang.UnsupportedClassVersionError: Test5
> 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 52.0
> ...

Die Java Runtime Environment (JRE) Version passt nicht zur Version des 
Java Development Kit (JDK). D.h du kompilierst entweder mit einer 
neueren Version, oder es wird eine ältere Java Version zum Ausführen 
benutzt. Führe mal 'java -version' in cmd aus und poste den Output.

von JavaIsAuchNurNeInsel (Gast)


Lesenswert?

Aktuell ist übrigens Java SE 19...

von LSN (Gast)


Lesenswert?

java -version
java version "1.8.0_351"
Java(TM) SE Runtime Environment (build 1.8.0_351-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)

> Aktuell ist übrigens Java SE 19...

Beim Projekt erstellen ist Java SE 17 Vorausgewählt gewesen und das habe 
ich dann auch so stehen gelassen!

Ich habe gerade Java SE 18 Eingestellt aber dann wird das ganze Programm 
als Fehler Angezeigt.
Java SE 19 ist nicht Auswählbar oder Verfügbar.
Mit Java SE 14 und 16 Eingestellt habe ich eben noch jars Erstellt aber 
die startet auch nicht.

Die Eclipse Java IDE habe ich am 22.7.2022 Heruntergeladen und 
Installiert.

> Mit rechtsklick "immer öffnen mit" C:\Program 
Files\Java\jre1.8.0_351\bin\java.exe
Ob das überhaupt so korrekt ist?

von Oskarine (Gast)


Lesenswert?

LSN schrieb:
>
> Am Code liegt es nicht. Bin kein Anfänger.

LOL. Der war echt gut.

von Udo S. (urschmitt)


Lesenswert?

Schmeiß dein uraltes JRE raus (incl. Pfadangaben und JAVA_HOME 
Umgebungsvariable) und installiere was aktuelles.
Du baust in Eclipse für 17 und willst es auf einer 1.8 Runtime laufen 
lassen.

Das ist so als wenn du mit Win-10 und aktuellem Visual Studio ein 
Programm für diese Umgebung baust und das dann auf einem Win-95 Rechner 
laufen lassen willst.

von MaWin (Gast)


Lesenswert?

LSN schrieb:
> Am Code liegt es nicht

LSN schrieb:
> Ich habe nichts Verändert!

Dann funktioniert es ja!

von Achim H. (anymouse)


Lesenswert?

LSN schrieb:
> Exception in thread "main" java.lang.UnsupportedClassVersionError: Test5
> 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 52.0

Das ist eine recht eindeutige Fehlermeldung:
Du versuchst ein Java-17-Programm (Version 61.0) mit einer Java-8-JVM 
(Version 52.0) abzuspielen. Das funktioniert nicht.
Welche Java 8 Version das jetzt genau ist, ist irrelevant; es kommt auf 
das Sprachlevel an.

Entweder Du kompilierst für die Java8-Sprachelemente (d.h. nicht Auswahl 
des Java-8-DK, sondern die Bytecode-Version). Vielleicht wird das 
Programm dann aber nicht kompilierbar sein.

Oder Du installierst Dir eine Java 17-Laufzeitumgebung.

von Manfred (Gast)


Lesenswert?

LSN schrieb:
> Am Code liegt es nicht. Bin kein Anfänger.

:-) :-)

von LSN (Gast)


Lesenswert?

@Udo S.
@Achim H.
Danke Verstanden!
Ich war eben und auch gestern Abend ziemlich Müde!
Ihr seid gerade schneller als ich.

von LSN (Gast)


Lesenswert?

Beim JRE googeln eben war der Link Angeschwärzt
https://www.java.com/de/download/manual.jsp
Ich hatte die Version vielleicht dort Gedownloadet das war wohl falsch.
jre-8u341-windows-x64.exe Version 8.0.3410.10 habe ich vor 2 Tagen
Gedownloadet und Installiert und gestern geupdatet.
Ich dachte das wäre die Aktuelle JRE Version.

Ich weiß nicht wie das möglich sein kann das zu genau diesen
Zeitpunkt Version 1 statt 8 installiert wurde?

von Jens G. (jensig)


Lesenswert?

MaWin schrieb:
> LSN schrieb:
>> Am Code liegt es nicht
>
> LSN schrieb:
>> Ich habe nichts Verändert!
>
> Dann funktioniert es ja!

Einer der vielen MaWins scheint die Fehlermeldung nicht verstanden zu 
haben ...


LSN schrieb:
> Man kann beim Starten für ein par millisekunden ein Programmfenster
> sehen

Ja logisch. Das ist auch der falscheste Weg, ein Programm aus dem 
Explorer heraus starten zu wollen, wenn man debuggen  will, und eine 
Fehlermeldung sehen will.
Sowas ruft man grundsätzlich über die Kommandozeile auf, dann sieht man 
auch, was gemeckert wird. Und dann muß man nur noch Fehlermeldungen 
lesen, und versuchen wollen, diese zu verstehen

LSN schrieb:
> Vorhin hatte ich das über cmd mehrmals probiert aber einen falschen
> Befehl eingegeben.
> Jetzt habe
>
> java -jar C:\Users\ ... \Desktop\xx.jar
>
> nochmal eingegeben Ergebnis:
> Exception in thread "main" java.lang.UnsupportedClassVersionError: Test5
> 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 52.0
> ...
> ...
>
> Ich versuche das problem Morgen zu lösen.
>
> Vielleicht fehlt nur
>   public static final long serialVersionUID = 1;

Nöö, überhaupt nicht. Lese doch einfach mal die Fehlermeldung durch. Da 
steht doch klipp und klar drin, was das Problem ist. Deine Java.exe ist 
einfach gegenüber der javac.exe, die in Eclipse verwendet wird, zu alt, 
bzw. kann mit den uralten Classfile-Versionen nix noch nix anfangen.
Nimm einfach die java.exe aus der Java-Installation, die das Eclipse 
mitgebracht hat bzw.verwendet, und alles ist gut. Irgendein Extra-Java 
muß da gar nicht installiert werden.

von LSN (Gast)


Lesenswert?

Eine Suche nach java im Elipse IDE Ordner Ergibt nur
C:\Program 
Files\Eclipse_Java\eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre 
.full.win32.x86_64_17.0.3.v20220515-1416\jre\bin\java.exe
Ein rechtsklick "öffnen mit" mit dieser java.exe geht auch nicht.
War das die richtige java.exe?
Habe ich sonst noch was falsch gemacht?

von Jens G. (jensig)


Lesenswert?

LSN schrieb:
> Ein rechtsklick "öffnen mit" mit dieser java.exe geht auch nicht.
> War das die richtige java.exe?

Ja, sieht aus wie die richtige.

> Habe ich sonst noch was falsch gemacht?

Ja - Du hast schon wieder das Java aus dem Explorer heraus gestartet ... 
wie glaubst Du, auf diesem Weg an neuen Erkenntnisse zu gelangen?

: Bearbeitet durch User
von LSN (Gast)


Lesenswert?

Ich konnte gerade nicht früher Antworte

Ich bekomme die Kommandozeile
java -jar C:\Users\ ... \Desktop\xx.jar
nicht auf diese Eclipse java.exe geändert

von JavaIsAuchNurNeInsel (Gast)


Lesenswert?

Das alte Java 8 deinstallieren und danach Jave SE 19 installieren.

von LSN (Gast)


Lesenswert?

JavaIsAuchNurNeInsel schrieb:
> Das alte Java 8 deinstallieren und danach Jave SE 19 installieren.
Java 8 habe ich jetzt deinstalliert und den ganzen Java Ordner danach 
Gelöscht.
Da war noch 8xMB der 1. Installation drin.
Von wo soll ich die Downloaden?

von Achim H. (anymouse)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

Ein Programm dass für Java 17 compiliert wurde benötigt zum Ausführen 
mindestens Java 17.

Das ist die gleich Nummer wie mit Windows. Wein Programm dass für 
Windows compiliert wurde braucht mindestens Windows 10. Unter Windows 95 
kann es nicht laufen.

Die Konstante SerialVersionUID hat damit gar nichts zu tun. Das ist eine 
ganz andere Baustelle, da geht es darum, die Version einer Schnittstelle 
zu dokumentieren. So wie es auch HTTP 1.0, 1.1 und 2.0 gibt.

von LSN (Gast)


Lesenswert?

@Stefan F.
Ja das war das Problem.
Ich hatte bei den Versionsnummern richtig ein Knoten im Kopf!
V8 und Java SE 19

von MaWin (Gast)


Lesenswert?

Jens G. schrieb:
> Einer der vielen MaWins scheint die Fehlermeldung nicht verstanden zu
> haben ...

Er hat nichts verändert. Weder den Code, noch die Umgebung. Also ist die 
Fehlermeldung falsch und in Wirklichkeit muss es funktionieren!

von LSN (Gast)


Lesenswert?

Auf der Seite
https://openjdk.org/
Bin ich bei
https://jdk.java.net/19/
gelandet
und habe das Windows / x64 zip JDK19 heruntergeladen und extrahiert
Das wurde aber nur extrahiert und nicht Installiert
Irgendwie etwas falsch oder auch nicht weil JDK19 statt JRE19
aber das JDK19 enthält bekanntlich die JRE19

Oder das hier?
https://jdk.java.net/java-se-ri/19
Windows 11 x64 Java Development Kit (sha256) 186 MB

von LSN (Gast)


Lesenswert?

Ich habe mit den JDK19 jetzt
C:\Program Files\Java\jdk-19.0.1\bin\java.exe
Aber die Installation fehlt

von LSN (Gast)


Lesenswert?

Ich habe vorhin wohl die richtige Version Heruntergeladen,
wenn man die Überschrift der Seiten Durchließt.

Aber wie wird das Installiert?

von quotendepp (Gast)


Lesenswert?

LSN schrieb:
> Bin kein Anfänger.

LSN schrieb:
> Aber wie wird das Installiert?

sicher, dass das das richtige gobby für dich ist?

von LSN (Gast)


Lesenswert?

cd C:\Program Files\Java\jdk-19.0.1\bin
java.exe -jar C:\Users\ ... \Desktop\xx.jar
Der Befehl Funktioniert und Das Programm Startet Normal ohne IDE mit dem 
JDK19 JRE.
Der Befehl Funktioniert angepasst auch mit der Eclipse IDE JRE.

Jetzt muss ich nur noch Morgen die Umgebungsvariable in Win11 ändern.

Ich hoffe das ich dann auch mit dem JDK19 mit Java SE 19 Programme 
erstellen kann.

von Stefan F. (Gast)


Lesenswert?

Die JRE braucht man um Java Programme auszuführen.
Das JDK braucht man um Java Programme zu erstellen, es enthält 
zusätzlich zur JRE einige Entwickler-Tools.

Java kann von vielen Firmen implementiert werden, wie auch C und Perl 
(kennst du vielleicht). Eine dieser Firmen ist Oracle, die ihr Produkt 
Java SE nennt, eine andere die Community die ihr Produkt OpenJDK nennt.

Oracle hat einige Erweiterungen hinzugefügt. Wenn das Programm diese 
Erweiterungen benötigt, dann musst du Java SE installieren, nicht das 
OpenJDK. Beachte die Lizenbedingungen von Oracle.

Oracles Java DE kommt mit einem Windows Installer daher. Das OpenJdk 
wird hingegen nur als ZIP Archiv bereit gestellt. Du musst es selbst 
installieren, also auspacken und die Umgebungsvariablen JAVA_HOME und 
PATH entsprechend einstellen.

von LSN (Gast)


Lesenswert?

@Stefan F.
Ich hatte vor Tagen gedacht ich hätte die Aktuelle JRE Installiert und 
Upgedatet!
Das das nur Version 8 oder 1 war und dort 19 stehen sollt war mir ein 
Rätsel weil Müde!
War wohl falsche Download Seite von Google.

Ich dachte auch das die IDE ein ausreichend aktuelles
JDK enthält, und ich deswegen nur die Aktuelle JRE brauche!

Jetzt habe ich JDK19.
Morgen oder die nächsten Tage geht's weiter.

von Stefan F. (Gast)


Lesenswert?

LSN schrieb:
> Das das nur Version 8 oder 1 war

Java 1 war es ganz sicher nicht, das gab es 1996.

von Rolf M. (rmagnus)


Lesenswert?

Stefan F. schrieb:
> LSN schrieb:
>> Das das nur Version 8 oder 1 war
>
> Java 1 war es ganz sicher nicht, das gab es 1996.

Wobei sie ja zwischendurch plötzlich die Nummerierung umgestellt haben. 
Nach 1.4 kam 5.0, weil sie die zweite Zahl zur ersten gemacht haben. 
Verwirrenderweise taucht die 1 am Anfang halt auch bei Version 8 noch 
auf, wie man ja hier sieht:

LSN schrieb:
> Mit rechtsklick "öffnen mit" habe ich mehrmals C:\Program
> Files\Java\jre1.8.0_351\bin\java.exe ausgewählt.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

LSN schrieb:
> Ich konnte gerade nicht früher Antworte
>
> Ich bekomme die Kommandozeile
> java -jar C:\Users\ ... \Desktop\xx.jar
> nicht auf diese Eclipse java.exe geändert

Man schreibt ganz einfach den kompletten Pfad zur java.exe mit davor 
(evtl. in Gänsefüßchen gesetzt, wenn Leerzeichen im Pfadstring), weil 
das Eclipse-Java vermutlich nicht im PATH mit drin ist. Oder man 
wechselt einfach ins Verzeichnis der java.exe, dann muß man nicht mehr 
den Pfad der exe angeben.
Eigentlich ganz einfach (noch nicht mal windows-spezifisch).

von Stefan F. (Gast)


Lesenswert?

Ich erlebe das auch zunehmend mit neuen Entwicklern die in meiner Firma 
eingestellt werden: Sie wissen nicht wie man einen PC bedient. Sie 
kennen weder die Grundlagen der Kommandozeile, noch können sie zwischen 
gängigen Dateisystemen unterscheiden. Manche wissen nicht einmal, was 
ein Daemon (bzw. Dienst) ist. Und das sind in der Regel Akademiker!

Wenn ich ihnen erkläre, dass man einen Output besser nicht Byteweise 
irgendwohin schreibt, sondern in Blöcken, dann schauen sie mich an, als 
ob der Dalai Lama einen weisen Spruch aufgesagt hätte.

Neulich wunderte sich ein Kollege darüber, dass kleine Programme 
auffällig schneller laufen, als große. Nein, doch oh!

von Manfred (Gast)


Lesenswert?

Stefan F. schrieb:
> Ich erlebe das auch zunehmend mit neuen Entwicklern die in meiner Firma
> eingestellt werden: Sie wissen nicht wie man einen PC bedient. Sie
> kennen weder die Grundlagen der Kommandozeile, noch können sie ...

Aber sie basteln mit Java oder C# Software, aus fertigen Klassen 
zusammenkopiert. Die bekommen dann das große Stottern, wenn man deren 
Müll ordentlich testet und Korrekturen einfordert.

Ich hasse Java, es sorgt für viel Ressourcenbedarf und ist langsam.

Was garnicht geht, sind Anwendungen, die im Zielsystem die Installation 
einer Runtime-Umgebung erfordern - mit solchem Müll musste ich mich 
jahrelang quälen.

von Stefan F. (Gast)


Lesenswert?

Manfred schrieb:
> Was garnicht geht, sind Anwendungen, die im Zielsystem die Installation
> einer Runtime-Umgebung erfordern - mit solchem Müll musste ich mich
> jahrelang quälen.

Das ist aber bei praktisch allen Programmiersprachen nötig, es sei denn 
du linkst sie statisch in die exe Datei rein.

Zentral installiere Bibliotheken sparen eine Menge Speicher, wenn sie 
von mehreren Programmen genutzt werden. Bei der wachsenden Vielfalt von 
Programmiersprachen und Bibliotheken kommt das allerdings immer seltener 
vor.

von arbeitsloser Intendant (Gast)


Lesenswert?

Stefan F. schrieb:
> Ich erlebe das auch zunehmend mit neuen Entwicklern die in meiner Firma
> eingestellt werden: Sie wissen nicht wie man einen PC bedient.
Dann solltet ihr den rauswerfen der solche Leute einstellt.

von Udo S. (urschmitt)


Lesenswert?

Manfred schrieb:
> Was garnicht geht, sind Anwendungen, die im Zielsystem die Installation
> einer Runtime-Umgebung erfordern

Da kann ich dagegenhalten:
Was gar nicht geht sind Anwendungen die ein bestimmtes Betriebssystem 
erfordern.
Die man ggf. für X Betriebssysteme und DBMS getrennt bauen und für 
Kunden vorhalten muss.

Der Trend geht inzwischen zu VMs und Containern.
Dagegen ist eine Java Runtime ein "lean system".

: Bearbeitet durch User
von 🐧 DPA 🐧 (Gast)


Lesenswert?

arbeitsloser Intendant schrieb:
> Stefan F. schrieb:
>> Ich erlebe das auch zunehmend mit neuen Entwicklern die in meiner Firma
>> eingestellt werden: Sie wissen nicht wie man einen PC bedient.
> Dann solltet ihr den rauswerfen der solche Leute einstellt.

Naja, das nützt auch nur begrenzt. Brauchbare bewerben sich nur sehr 
selten. Und dann muss man sich überlegen, ist es besser, einen zu haben, 
der noch nicht viel kann, oder gar keinen zu haben.

von Stefan F. (Gast)


Lesenswert?

arbeitsloser Intendant schrieb:
> Dann solltet ihr den rauswerfen der solche Leute einstellt.

Das tun wir auch, dafür ist die Probezeit da.

Nur eine Kollegin durfte bleiben, weil sie das Nötige schnell zu hause 
gelernt hat.

von c-hater (Gast)


Lesenswert?

Stefan F. schrieb:

> Nur eine Kollegin durfte bleiben, weil sie das Nötige schnell zu hause
> gelernt hat.

Das ist Sklaverei. Lernen ja, aber wenn man für den Brötchengeber lernt, 
sollte das in der Arbeitszeit passieren können und nicht zu Hause.

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Das ist Sklaverei. Lernen ja, aber wenn man für den Brötchengeber lernt,
> sollte das in der Arbeitszeit passieren können und nicht zu Hause.

Wer das so sieht darf gerne gehen und sein Glück woanders versuchen. Wir 
stellen Fachkräfte ein die der Firma etwas zu bieten haben. Für 
"Auszubildende" die nicht einmal den Dateimanager ihres präferierten OS 
(ja, da sind wir flexibel) routiniert bedienen können, haben wir keine 
Zeit, so schade das auch ist.

von Rolf M. (rmagnus)


Lesenswert?

c-hater schrieb:
> Stefan F. schrieb:
>
>> Nur eine Kollegin durfte bleiben, weil sie das Nötige schnell zu hause
>> gelernt hat.
>
> Das ist Sklaverei. Lernen ja, aber wenn man für den Brötchengeber lernt,
> sollte das in der Arbeitszeit passieren können und nicht zu Hause.

Das kommt doch sehr darauf an. Spezielles Fachwissen für die Stelle, ok. 
Man kann ja nicht alles wissen. Aber der Arbeitgeber darf durchaus auch 
erwarten, dass jemand bei der Einstellung ein gewisses Grundwissen im 
Themenbereich seiner Aufgabe besitzt und nicht erst auf Kosten der Firma 
dazu gebracht werden muss. Für sowas gibt's dann Praktikanten- und 
Azubistellen.

von LSN (Gast)


Lesenswert?

Ich habe jetzt eine Stunde Versucht die Umgebungsvariablen richtig 
Einzutragen
damit ich mit nur einem Doppelklick die xx.jar Starten kann aber 
Funktioniert nicht.

wenn ich
JAVA_HOME
C:\Program Files\Java\jdk-19.0.1\bin

und bei Path
C:\Program Files\Java\jdk-19.0.1\bin

bei den Systemvariablen Eingebe. Dazu noch
Mit rechtsklick auf xx.jar "immer öffnen mit" C:\Program 
Files\Java\jdk-19.0.1\bin\java.exe

dann bekomme ich mit

java -version
openjdk version "19.0.1" 2022-10-18
OpenJDK Runtime Environment (build 19.0.1+10-21)
OpenJDK 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)

Damit Startet die jar jetzt zwar so
java -jar C:\Users\ ... \Desktop\xx.jar

aber Doppelklick auf xx.jar klappt nicht

Irgendwas ist noch Falsch

von Stefan F. (Gast)


Lesenswert?

LSN schrieb:
> JAVA_HOME
> C:\Program Files\Java\jdk-19.0.1\bin

JAVA_HOME soll auf Das Installationsverzeichnis C:\Program 
Files\Java\jdk-19.0.1 zeigen.

Bei der PATH Variable gibt du aber das bin Unterverzeichnis an, also 
C:\Program Files\Java\jdk-19.0.1\bin.

Beide Variablen werden nicht von Java selbst benötigt, aber von vielen 
Programmen, die Java als Unterprogramm starten.

> aber Doppelklick auf xx.jar klappt nicht

Für den Doppelklick braucht der Dateimanager eine eigene Konfiguration, 
die er mit der Dateiendung *.jar assoziiert. Die dazu nötige 
Konfiguration richtet der Installer von Oracles Java SE ein. Es gibt in 
Windows keinen vorgesehenen Weg, diese Konfiguration manuell anzulegen.

Vielleicht klappt dieses Hilfsprogramm noch: 
https://www.informatikzentrale.de/jar-dateien-oeffnen.html

Alternativ hat sich (nicht nur bei Java) bewährt, neben die *.jar Datei 
ein Start-Script zu legen, dass sich per Doppelklick öffnen lässt. Zum 
Beispiel würde neben der Datei MeinProgramm.jar eine MeinProgramm.bat 
liegen, mit folgendem Inhalt:
1
java.exe -jar MeinProgramm.jar

Da kann man dann ggf. auch den ganzen Pfad zur gewünschten Java-Version 
angeben, sowie weitere Kommandozeilenparameter die das Programm 
eventuell braucht. Häufig gibt man hier z.B. an, wie viel RAM das 
Programm bekommen soll, weil die Standardvorgabe von Java oft ungünstig 
ist

Vergiss den Doppelklick auf die *.jar Datei, das ist die Mühe nicht 
Wert. Spätestens wenn du unterschiedliche Java Versionen je nach 
Programm brauchst, kann das eh nicht mehr sinnvoll funktionieren.

von Daniel A. (daniel-a)


Lesenswert?

Bei Python unter Linux gibt es das Kommando mit der Version drin. 
python2, python 2.7, python3, python3.4,5,6,7,8...
Würde java eventuell auch gut tun.

Und unter linux wird nicht die extension, sondern binfmt_misc zum finden 
des Interpreters beim direkten ausführen verwendet. Also die magic 
numbers in der .jar Datei gecheckt. Da könnte man theoretisch auch die 
Version mit checken, macht da aber glaub ich keiner.

In Scripten, in der #! Zeile, konnte man die version auch angeben. 
Wobei, dank dem Paketmanager, hat man da in der nur eine, die neuste 
Version drauf. Und unter z.B. debian, wenn man doch mehrere hat, nimmt 
das alternatives System per default die neuste, wenn man keine andere 
als default wählt, und nicht explizit eine bestimmte angibt.

Da könnten sich die Windows Entwickler mal was abschauen.

von LSN (Gast)


Lesenswert?

Stefan F. schrieb:
> Es gibt in Windows keinen vorgesehenen Weg, diese Konfiguration manuell 
anzulegen.

Ich suche im web nochmal was die OpenJDK Entwickler und andere dazu 
sagen

von arbeitsloser Intendant (Gast)


Lesenswert?

LSN schrieb:
> aber Doppelklick auf xx.jar klappt nicht
>
> Irgendwas ist noch Falsch

Der Regeintrag für .jar fehlt. Entweder dort eintragen oder ein 
wrapperscript dafür schreiben.

von LSN (Gast)


Lesenswert?

Hallo
Auf eine Registrierung hatte ich auch getippt aber ich finde keine Infos 
wie das gemacht wird!
Ich glaube auch nicht wirklich das die Entwickler das JDK manuell 
installieren und irgend jemand das im Internet beschrieben hat.

Mit einer .bat Datei Funktioniert das einfache Starten aber gut.

von Stefan F. (Gast)


Lesenswert?

LSN schrieb:
> Ich glaube auch nicht wirklich das die Entwickler das JDK manuell
> installieren

Doch tun sie (nicht immer aber oft). Insbesondere wenn man sowohl an 
alten als auch an neuen Projekten arbeitet, die unterschiedliche Java 
Versionen erfordern.

Früher war Java immer bis zur allerersten Version vollständig 
abwärtskompatibel, das hat sich ab Version 8 geändert.

> Mit einer .bat Datei Funktioniert das einfache Starten aber gut.

Das schöne daran ist, dass diese Methode in allen Betriebssystem 
prinzipiell gleich geht.

von LSN (Gast)


Lesenswert?

Aber leider öffnet sich über die .bat immer so ein cmd Fenster das ich 
aber nicht immer haben möchte.
Ich habe schon die meisten Tipps ausprobiert aber ich kann das Fenster 
nicht in der .bat Abschalten.

Es ist ist auch sehr merkwürdig das ich nichts über eine Registrierung 
dieser Version des JDK finden kann.

von Stefan F. (Gast)


Lesenswert?

LSN schrieb:
> Aber leider öffnet sich über die .bat immer so ein cmd Fenster das ich
> aber nicht immer haben möchte.

Schau dir mal die Doku zum "start" Befehl an. Damit kannst du das 
unterdrücken. Allerdings geben die meisten Java Programme ihre 
Fehlermeldungen in eben diesem Fenster aus, das man dann nicht sehen 
kann.

Für normale Anwender richtet eher ein Symbol im Startmenü ein.

von LSN (Gast)


Lesenswert?

Denn Start Befehl teste ich nochmal, ich hatte auf die schnell nicht die 
richtige Beschreibung dazu gefunden.

Mit Entwickler meinte ich die JDK19 Entwickler.

arbeitsloser Intendant schrieb:
> Der Regeintrag für .jar fehlt. Entweder dort eintragen oder ein
> wrapperscript dafür schreiben.

Den Begriff wrapperscript habe ich jetzt erst gegoogelt.
Auf die Idee bin ich auch schon selber drauf gekommen das ist ähnlich 
wie dieses Jarfix Programm hinter einer Track/Paywall

Stefan F. schrieb:
> Vielleicht klappt dieses Hilfsprogramm noch:
> https://www.informatikzentrale.de/jar-dateien-oeffnen.html

Ich kannte aber den Begriff wrapperscript nicht.

von Zeno (Gast)


Lesenswert?

LSN schrieb:
> Aber leider öffnet sich über die .bat immer so ein cmd Fenster das ich
> aber nicht immer haben möchte.
> Ich habe schon die meisten Tipps ausprobiert aber ich kann das Fenster
> nicht in der .bat Abschalten.
Schau mal hier 
https://www.cc-community.net/threads/bat-datei-ohne-dos-fenster-ausführen.80759/

Stefan F. schrieb:
> Es gibt in
> Windows keinen vorgesehenen Weg, diese Konfiguration manuell anzulegen.
Doch gibt es. Wie es geht ist hier 
https://k2rx.com/how-run-jar-files-windows-10 beschrieben. Die 
Beschreibung ist zwar für Win10, es sollte aber unter Win11 genauso 
funktionieren.
Es ist eine Mär zu behaupten man könne unter Windows das Öffnen einer 
Datei mit einem bestimmten Programm nicht manuell festlegen. Das geht 
sogar sehr einfach mit einem simplen Rechtsklick.
Das Problem beim TO ist, das man um eine *.jar Datei auszuführen noch 
einen Parameter (-jar) mit geben muß und genau das ist das Problem. Den 
Parameter bekommt man mit dem Rechtsklick nicht so einfach hin, da muß 
man dann in der Registry manuell anpassen. Ich meine es gibt auch noch 
im Explorer eine Option wo man Verknüpfungen bearbeiten kann und dort 
kann man das auch anpassen. Da gerade an einem Mac sitze, müßte ich aber 
noch einmal nachschauen, wenn ich wieder am Windows-PC sitze.

Das Problem mit dem jar scheint ja kein Einzelfall zu sein. Es gibt wohl 
auch Tools, mit denen man die Verknüpfung einrichten kann.
https://wiki.byte-welt.net/wiki/Jar-Datei_mit_Doppelklick_nicht_ausführbar%3F. 
Eine einfache Möglichkeit die Verknüpfung einzurichten ist hier 
https://www.informatikzentrale.de/jar-dateien-oeffnen.html beschrieben. 
Es gibt ein kleines Programm, Namens jarfix, welches die korrekte 
Verknüpfung erstellt. Das Programm kann man hier 
https://www.heise.de/download/product/jarfix-41657 downloaden.

von Stefan F. (Gast)


Lesenswert?

Zeno schrieb:
> Es ist eine Mär zu behaupten man könne unter Windows das Öffnen einer
> Datei mit einem bestimmten Programm nicht manuell festlegen.

Das hab ich auch nicht behauptet. Es geht nur nicht mit Java Programmen, 
wie du selbst erkannt hast.

> da muß man dann in der Registry manuell anpassen.

Genau das ist in Windows nicht vorgesehen. Man soll nicht manuell in der 
Registry herum hacken. Auf gar keinen Fall empfiehlt man das solchen 
Anfängern, wie dem TO oder gar den End-Usern.

> Ich meine es gibt auch noch im Explorer eine Option wo man
> Verknüpfungen bearbeiten kann und dort kann man das auch anpassen.

Wäre schön, geht aber nicht.

von c-hater (Gast)


Lesenswert?

Stefan F. schrieb:

> Zeno schrieb:
>> da muß man dann in der Registry manuell anpassen.

> Genau das ist in Windows nicht vorgesehen.

So ein Unsinn. Eindeutiger Gegenbeleg: jede noch so verschissene 
Windows-Version hat im Lieferumfang den regedit.exe (bzw. ganz 
früher(tm) auch regedt.exe).

> Man soll nicht manuell in der
> Registry herum hacken.

Nein, Man sollte nur nicht darin rumhacken, wenn man nicht weiß, was man 
tut. Wenn man das weiß, darf man das natürlich. Das komfortable 
GUI-Werkzeug dafür wird ja sogar mitgeliefert. Es geht aber auch so, wie 
die LinSuckser es nur kennen, wenn es nahe an's System geht: knallhart 
über völlig kryptische CLI-Befehle.

Wer also auf CLI-Masochismus steht, darf diese Verhaltensstörung auch 
unter Windows voll ausleben, reg.exe macht es möglich...

Ersetzt aber natürlich auch keine Kompentenz bezüglich der 
Registry-Inhalte...

von LSN (Gast)


Lesenswert?

Ich werde wohl bei Lösung mit der Bat-Datei bleiben,
weil durch manuelle Änderungen an der Registrierung
das Betriebssystem beschädigt werden kann was ich nicht wusste.

von c-hater (Gast)


Lesenswert?

LSN schrieb:
> Ich werde wohl bei Lösung mit der Bat-Datei bleiben,
> weil durch manuelle Änderungen an der Registrierung
> das Betriebssystem beschädigt werden kann was ich nicht wusste.

LOL

Auch eine bat-Datei kann natürlich dein Betriebsystem beschädigen. Kommt 
halt darauf an, was darin steht und mit welchen Rechten sie ausgeführt 
wird...

von LSN (Gast)


Lesenswert?

Da steht nur das drin

java -jar "xx.jar"

von c-hater (Gast)


Lesenswert?

LSN schrieb:
> Da steht nur das drin
>
> java -jar "xx.jar"

Und eine solche legst du dann für jede verschissene "xx.jar" neu an?

Tss...

von LSN (Gast)


Lesenswert?

Mit dem hier angesprochenem wrapperscript oder einem ähnlichen Programm 
zusammen mit "immer öffnen mit" nicht.

Bei dem anderen JRE JDK Anbieter (ich glaube Oracle) reicht auch schon 
eine normale Installation und man kann alle jars mit Doppelklick 
starten.
Das hatte ich früher wohl Installiert und deswegen konnte ich auch 
damals alle jars immer mit Doppelklick starten.
Dieses JDK in der Aktuellen Version könnte ich auch jetzt Installieren.
Wäre Vieleicht besser. Daran habe ich auch gerade nicht dran gedacht.
Mir viel eben nur die .bat Lösung ein.
Ich hatte vorhin ja auch nach einer Lösung für das openjdk 19 gesucht.

von LSN (Gast)


Lesenswert?

Das war doch die JRE Version wo ich die falsche Downlod Seite getroffen 
hatte.

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Und eine solche legst du dann für jede verschissene "xx.jar" neu an?

Why not?

Früher oder später möchte er eh weitere Parameter angeben, z.B. damit 
ein kleines Programm sich nicht schon beim start 1,5 GB RAM reserviert. 
Oder um bei einem großen Programm den Code-Cache zu vergrößern weil es 
sonst extrem langsam läuft. Oder ganz banal um die benötigte Java 
Version anzugeben.

Solche Startscripte sind in der Java Welt völlig normal.

von Stefan F. (Gast)


Lesenswert?

LSN schrieb:
> Bei dem anderen JRE JDK Anbieter (ich glaube Oracle) reicht auch schon
> eine normale Installation und man kann alle jars mit Doppelklick
> starten.

> Dieses JDK in der Aktuellen Version könnte ich auch jetzt Installieren.
> Wäre Vieleicht besser. Daran habe ich auch gerade nicht dran gedacht.

Hatte ich weiter oben empfohlen.

> Ich hatte vorhin ja auch nach einer Lösung für das openjdk 19 gesucht.

Brauchst wirklich diese Version? Sie hat keinen Langzeit-Support. Schon 
im kommenden Sommer stehst du blöd da, wenn du dafür security Patches 
brauchst. Siehe 
https://www.oracle.com/java/technologies/java-se-support-roadmap.html

Die aktuelle Version mit Langzeit Support (bis 2029) ist Java 17.

von LSN (Gast)


Lesenswert?

> Brauchst du das denn?
Nein

Ich dachte vorhin es fehlt nur noch ein winziger Eintrag wie bei 
JAVA_HOME und ich bin Fertig damit

von Zeno (Gast)


Angehängte Dateien:

Lesenswert?

Stefan F. schrieb:
> Wäre schön, geht aber nicht.
Jaein, bis Windows XP war es kein Problem, da hat das problemlos über 
die Ordneroptionen funktioniert (s.Bild). Seit Vista gibt es die Karte 
Dateitypen nicht mehr. Es geht allerdings problemlos über die Registry. 
Dort gibt es direkt unter HKEY_CLASSES_ROOT einen Schlüssel 
"SystemFileAssociations". Dort legt man einen Unterschlüssel ".jar" an. 
Unter diesem Schlüssel legt man den Schüssel "Shell", in diesem "open" 
und dort noch einen Schlüssel "command". Da kann man dann seine 
Befehlszeile reinschreiben.
Ich würde mir da eine Extention raus suchen wo es das schon alles gibt 
und diesen Schlüssel erst mal exportieren. Das resultierende Textfile 
kann man problemlos anpassen. Das editierte Schlüsselfile wird mit 
ausgeliefert und kann problemlos mit einem Doppelklick installiert 
werden.
Noch besser man benutz einen Installer wie z.B. Innosoft für seine SW, 
denn der kann solche Schlüssel problemlos anlegen. Das funktioniert auch 
mit Win10/11 - habe ich mit meiner SW selbst schon probiert.

von Zeno (Gast)


Lesenswert?

Stefan F. schrieb:
> Genau das ist in Windows nicht vorgesehen. Man soll nicht manuell in der
> Registry herum hacken. Auf gar keinen Fall empfiehlt man das solchen
> Anfängern, wie dem TO oder gar den End-Usern.
Ist das bei LX anders? Da muß ich unter Umständen jeden Scheiß durch 
Ändern irgendeiner Konfigurationdatei anpassen. Da ist das Anpassen der 
Registry ein Klacks, wenn man weis wo.

von Stefan F. (Gast)


Lesenswert?

Zeno schrieb:
> Ist das bei LX anders

Ich denke nicht. Wie bei Windows gibt es dafür bestimmt irgendein 
Hilfsprogramm, aber in der Standardausstattung lässt sich das beim Gnome 
Desktop ebenso wenig konfigurieren, wie in Windows. Außer halt indem 
(wie du schriebst) eine Konfigurationsdatei editiert.

> Da ist das Anpassen der Registry ein Klacks, wenn man weis wo.

Wenn man weis, welche Datei man editieren muss, wüsste ich jetzt nicht, 
was daran komplizierter sein soll.

Wie gesagt, ich bevorzuge Start-Scripte. Dann muss man weder die 
Registry noch eine "Scheiß" Konfigurationsdatei oder die "Scheiß" 
Registry ändern, und riskiert nichts zu versauen.

von LSN (Gast)


Lesenswert?

Das start Kommando ändert nur den Fenster Titel

start "" java -jar "x.jar"

von Stefan F. (Gast)


Lesenswert?

start /b

von LSN (Gast)


Lesenswert?

> start /b
Funktioniert nicht! Auch nicht mit /b an anderer Position!

Dann werde ich das wohl einfach so stehen lassen

java -jar "x.jar"

Eine andere Script Sprache wäre auch noch möglich aber egal.

Ich bleibe erst mal beim OpenJDK und Wechsel dann irgendwann vielleicht
zum Oracle JDK.

von Zeno (Gast)


Lesenswert?

Man man kann sich mit dem Start von so'nem scheiß Javaprogramm auch 
anstellen.
Da schreibt man einfach eine kleine CMD:

Konsolenfenster öffnen und copy con java.cmd eintippen.
dann folgende 2 Zeilen
1
@echo off
2
java -jar %1
Strg+F6 drücken - fertig.

Jetzt nur noch einen Rechtsklick auf irgend eine jar-Datei und "Öffnen 
mit" wählen, als Programm zum Öffnen java.cmd auswählen und Haken bei 
"Dateityp immer mit diesem Programm öffnen" setzen und schon führt man 
die jar per Doppelklick aus.

Das war jetzt aber richtig schwer. Zeitaufwand für den ganzen Kram unter 
5 Minuten.

von Stefan F. (Gast)


Lesenswert?

LSN schrieb:
>> start /b
> Funktioniert nicht! Auch nicht mit /b an anderer Position!

Bei mir funktioniert das genau so, wie in der Doku von Microsoft 
beschrieben steht. Ich habe das extra für dich ausprobiert um ganz 
sicher zu sein.

"/b Startet eine Anwendung, ohne ein neues Eingabeaufforderungsfenster 
zu öffnen."

https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/start

von LSN (Gast)


Lesenswert?

@Stefan F.
Ich hatte das start /b gestern wie geschrieben alles durchgetestet mit 
Abspeichern.
Das sogar auch schon vor deinem Tip mit start /b.
Jetzt habe ich folgendes alles nochmal getestet mit Abspeichern und das 
Augelistet.
Es öffnet sich immer ein großes Konsolenfenster dazu.

start /b "" java -jar "x.jar"
start /B "" java -jar "x.jar"
/b start "" java -jar "x.jar"  =Fehler
start "" /b java -jar "x.jar"
start "" java /b -jar "x.jar"  =Fehler
start "" java -jar /b "x.jar"  =Fehler
start "" java -jar "x.jar" /b

Also bei mir Funktioniert das leider nicht, warum auch immer.


@Zeno

> @echo off
> java -jar %1

Danke das Funktioniert. Doppelklick auf alle .jar Funktioniert jetzt!
Genau das wrapperscript wollte ich auch gestern basteln und
java -jar %1
hatte ich schon selber herausgefunden weil einfach, wusste aber noch 
nicht ob das Funktioniert.
Ich wollte dann das "echo" Kommando dazu nehmen statt "start" aber ich 
konnte
die Beschreibung die ich dazu gefunden hatte überhaupt gar nicht 
Verstehen.
Ich dachte dann das Funktioniert nicht.

Ich hatte auch gestern keine Zeit mehr.

Also nochmal für andere Leute nochmal

@echo off
java -jar %1

in eine .bat Datei rein schreiben dazu

Mit rechtsklick "immer öffnen mit" diese .bat Datei Auswählen Fertig

Du hast das über die Konsole gemacht das kannte ich gar nicht.

von LSN (Gast)


Lesenswert?

Jetzt müsste man nur noch das große Konsolenfenster daneben weg 
bekommen.
Mit /b geht es bei mir aber gar nicht.

von LSN (Gast)


Lesenswert?

@echo off
start /b "" java -jar %1

ändert auch nichts

von LSN (Gast)


Lesenswert?

> Ich wollte dann das "echo" Kommando dazu nehmen statt "start" aber ich
> konnte
> die Beschreibung die ich dazu gefunden hatte überhaupt gar nicht
> Verstehen.
Hier war ich gestern in einem pdf völlig durcheinander gekommen,
vergesst es der Satz ist absolut Müll.

Das start /b bei mir nicht geht muss irgend einen Grund haben.
Software Veraltet oder Kommando falsch irgendwas.

von LSN (Gast)


Lesenswert?

java -jar %1
So ist Aktuell besser damit Fehler Angezeigt werden.
Oder das auf anderen PCs.
start /b "" java -jar %1

von LSN (Gast)


Lesenswert?

Ich kann meinen letzten Beitrag von 7:10 nicht löschen.
Alles falsch.
leider auch mein 6. Beitrag in folge Sorry.

von Professioneller Regeditor (Gast)


Lesenswert?

Man kann sich natürlich auch wochenlang mit Kleinigkeiten beschäftigen.

von Stefan F. (Gast)


Lesenswert?

LSN schrieb:
> @echo off
> start /b "" java -jar %1

So wäre es richtig:

> @echo off
> start /b java -jar %1

von LSN (Gast)


Lesenswert?

@Stefan F.
Hatte ich auch schon getestet.
Um ganz sicher zu gehen habe ich das auch jetzt nochmal aus dem Forum 
kopiert und getestet aber es öffnet immer ein großes Kommandofenster 
dazu.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.