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: > Am Code liegt es nicht LSN schrieb: > Ich habe nichts Verändert! Dann funktioniert es ja!
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.
@Udo S. @Achim H. Danke Verstanden! Ich war eben und auch gestern Abend ziemlich Müde! Ihr seid gerade schneller als ich.
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?
:
Bearbeitet durch User
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
Das alte Java 8 deinstallieren und danach Jave SE 19 installieren.
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.
@Stefan F. Ja das war das Problem. Ich hatte bei den Versionsnummern richtig ein Knoten im Kopf! V8 und Java SE 19
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
Ich habe mit den JDK19 jetzt C:\Program Files\Java\jdk-19.0.1\bin\java.exe Aber die Installation fehlt
Ich habe vorhin wohl die richtige Version Heruntergeladen, wenn man die Überschrift der Seiten Durchließt. Aber wie wird das Installiert?
LSN schrieb: > Bin kein Anfänger. LSN schrieb: > Aber wie wird das Installiert? sicher, dass das das richtige gobby für dich ist?
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.
:
Bearbeitet durch User
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".
:
Bearbeitet durch User
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...
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...
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.
Das war doch die JRE Version wo ich die falsche Downlod Seite getroffen hatte.
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.
> Brauchst du das denn?
Nein
Ich dachte vorhin es fehlt nur noch ein winziger Eintrag wie bei
JAVA_HOME und ich bin Fertig damit
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.
Das start Kommando ändert nur den Fenster Titel start "" java -jar "x.jar"
> 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 | @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.
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.
Jetzt müsste man nur noch das große Konsolenfenster daneben weg bekommen. Mit /b geht es bei mir aber 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.
java -jar %1 So ist Aktuell besser damit Fehler Angezeigt werden. Oder das auf anderen PCs. start /b "" java -jar %1
Ich kann meinen letzten Beitrag von 7:10 nicht löschen. Alles falsch. leider auch mein 6. Beitrag in folge Sorry.
Man kann sich natürlich auch wochenlang mit Kleinigkeiten beschäftigen.
LSN schrieb: > @echo off > start /b "" java -jar %1 So wäre es richtig: > @echo off > start /b java -jar %1
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.