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.
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.
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.
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.
> 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
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.
> 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
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.
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.
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?
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.
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.
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?
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.
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?
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?
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
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?
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.
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!
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
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.
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.
@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.
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.
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).
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!
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.
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.
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.
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".
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.
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.
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.
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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...
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.
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...
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.
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.
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.
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.
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.
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.
> 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.
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
@echooff
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.
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
@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.
> 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.
@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.