Java Version Prüfen lassen

Noxen

Mitglied
Hallo,

wollt mal gern wissen, was das beste ist, bzw wie ich vor dem Start, vor/nach der Installation des Progs die Java Version zu überprüfen und ggf zu Installieren. Ich habe ein kleines Programm für Java 7 - Update 5 geschrieben. Leider musste ich nun feststellen, dass viele noch ältere Versionen haben. Bei denen kommt eine Fehlermeldung, dass das Programm nicht geöffnet werden konnt, aber eben nicht, warum. Ich habe für das Prog eine Installation mit dem InstallJammer gemacht. Kann man vllt auf diese Art Java mitinstallieren lassen?

Was wäre die beste Möglichkeit?


Außerdem möchte ich gern das Programm automatisch aktualiseren lassen, natürlich nach Abfrage beim User. Wie wäre denn sowas möglich? Kleine Tipps (Denkanstöße) dürften reichen. Dann such ich mir den Rest zusammen. Weiß nur nicht, wo ich anfangen soll... Und was ich dafür vllt brauch.



Mfg Noxen
 
S

Sym

Gast
Du kannst natürlich ein JRE mit Deiner Applikation ausliefern. Das ist in der Regel kein Problem, solange Du das JRE mit in Deinem Installationspfad auslieferst.

Ansonsten kannst Du mit

Java:
System.getProperty( "java.version" )

die aktuelle Java-Version ermitteln und im Fehlerfall eine Nachricht an den Benutzer geben und das Programm beenden.
 

Noxen

Mitglied
die aktuelle Java-Version ermitteln und im Fehlerfall eine Nachricht an den Benutzer geben und das Programm beenden.

Ja, aber das Programm startet ja nichtmal, wenn die Aktuelle Version nicht drauf ist...


Also wäre es besser, die Java version in der Install mitzuliefern?
 

Noxen

Mitglied
hmm... anscheindend. Bin relativ neu in Java Programmierung. Mach das seid ein paar Wochen. Wie ich anfing hab ich gleich alles aktualisiert auf 1.7_05.

Es kommt wohl eine Meldung, in der stand, dass die Hauptdatei nicht geöffnet werden konnte. Er hatte da noch die 6er Java-Version drauf. Nach Update hat es dann einwandfrei funktioniert.
 
T

tröööt

Gast
@Sym
Es ist völlig egal ob man neue Features nutzt oder nicht wenn man eine Klasse mit JDK7 compiled und dann mit Java6 ausführen will. J7 hat den Header "v51.0", J6 erwartet aber maximal "v50.0".

@TO
In der Regel ist ein spezifisches Update eher unwichtig. Es kommt in der Regel nur auf die Major-Version an. Es gab zwar Fälle in denen das Update wichtig war (j6u10), aber das sind dann eher Dinge mit denen man sich als Programmierer auskennen muss.
Wenn du aber aufs Update genau prüfen willst kannst du das für Windows mit Launch4J. Dies prüft die Registry nach bestimmten Werten, und falls die nötige Java-Version nicht gefunden wurde wird der Browser mit java.com geöffnet (kann angepasst werden). Wie das unter Unix aussieht weiß ich nicht, denke aber mal das es hier auf was gibt. Mit "Java-Installern" kenne ich mich allgemein wenig aus da ich keinen Grund sehe eine Java-App zu "installieren". Eine App sollte als Jar (mit ggf. abhängigkeiten) ausgeliefert und direkt (oder via Launcher) startbar sein. Erst noch etwas "installieren" zu müssen (also Daten in bestimmte Ordner legen, Registry-Settings vornehmen, etc ...) zeigt eigentlich das der Programmierer einen Fehler im Konzept hat.
 

Noxen

Mitglied
Vielen Dank für deine Ausgiebige Erklärung dazu. Das mit dem Install sieht eben irgendwie Professioneller aus, dacht ich :)

Nun gut, Ich lass mich gern eines besseren Belehren. Werd dann eher über Launcher gehen. Und den Launch4J werd ich mir auch mal genauer anschauen. Vielen Dank für Eure Worte!!!
 

TheDarkRose

Gesperrter Benutzer
Wenn du keine Java7-exklusiven Features nutzt, dann könntest du deinen Compiler auch so einstellen, dass er für Java6 kompiliert.
 

Mujahiddin

Top Contributor
Du könntest auch 2 JARs ausliefern, die eine ist dein Programm und die andere ist der "Launcher", der in Java6 (oder geringer) kompiliert wird. Deine Launcher-JAR prüft nun, ob alle Voraussetzungen getroffen sind (ist auch sehr nützlich für Updates etc.) und je nachdem dann die Applikation starten oder eine Fehlermeldung auswerfen.
 
T

tröööt

Gast
naja ... klar sieht es schon irgendwie "besser" aus wenn man halt so n wizzard hat der dann so n paar balken hat die durchlaufen und alle dateien in halbwegs definierte ordner packt und notwendige configs erstellt ... aber das ist eigentlich nicht wirklich im sinne von java ...
auch native-wraper sind eher eine spielerei als wirklich sinnvoll ... aber man kann alles machen ...


ich geb dir mal ein vielleicht bekanntes beispiel : minecraft

du kannst erstmal so nur den launcher runterladen, einmal als normales JAR und dann noch als eine gewrapte exe mit Launch4J ...
das hat aber eigentlich eher was damit zu tun das es halt bequemer ist unter windows einfach ein doppelklick auf eine exe zu machen anstatt sich erst mit java auseinander setzen zu müssen ...
unix user wissen in der regel wie man etwas vom terminal startet und daher wird hier auch nur das JAR ohne z.b. shell-script ausgeliefert ...

wenn man nun minecraft startet ist das erste was gemacht wird alle daten zu laden und in einem speziellen ordner zu speichern ... und das ist dann auch schon eigentlich das "installieren" von minecraft ... und das ohne installer ...
alles was man von mitbekommt ist der durchlaufende balken der den download-status anzeigt ... was dann noch intern alles gemacht wird bleibt dem user verborgen ...
(auch wenn minecraft davon profitieren würde wenn es mal auf Java7 geupdated werden würde ... was dann aber viele ausschließen würde da das "alte" MAC auf PPC nur Java5 hergibt)

und genau so sollte man auch eine java app entwickeln ... das der launcher alle benötigten arbeiten macht und dem user lediglich einen fortschritt und wenn nötig noch ein paar einstellungsmöglichkeiten bietet ... aber so hoch-komplexe installer wie man es von einigen anderen dingen her kennt sollte man vermeiden ... ist zumindest meine persönliche meinung ...
 

Ark

Top Contributor
Du könntest auch 2 JARs ausliefern, die eine ist dein Programm und die andere ist der "Launcher", der in Java6 (oder geringer) kompiliert wird. Deine Launcher-JAR prüft nun, ob alle Voraussetzungen getroffen sind (ist auch sehr nützlich für Updates etc.) und je nachdem dann die Applikation starten oder eine Fehlermeldung auswerfen.
Wegen der 2 JARs: Schau dir mal Deliver Your Java Application in One-JAR™ ! an, vielleicht könnte das für dich interessant sein. Ob die Startklasse von One-JAR mit JDK 1.1 kompiliert ist, weiß ich aber gerade nicht.

Ark
 

Noxen

Mitglied
Super Ideen, das mit dem One-Jar muss ich mir in Ruhe mal anschauen, ob das was wäre.

Ich denke, ich werd das mit dem Launcher machen. Das der Launcher quasi alles überprüft und wenn alles ok ist, dann startet das Programm.
ob alle Voraussetzungen getroffen sind (ist auch sehr nützlich für Updates etc.)
Das wäre dann das nächste, was kommt :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
D SHA-3 für Java-version 1.8 Allgemeine Java-Themen 1
hello_autumn Java_Home geändert auf Java 13, trotzdem wird Java Version 8 angezeigt. Allgemeine Java-Themen 2
L Java Version ändernhi icj Allgemeine Java-Themen 9
G Wiedereinstieg, welche Java Version empfehlt ihr Allgemeine Java-Themen 7
G GUI-basiertes Java-Program in Command-line Version umwandeln Allgemeine Java-Themen 1
I Geeignete Java-Version herusfinden Allgemeine Java-Themen 7
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
Developer_X Java Version aufrüsten Allgemeine Java-Themen 6
J Firefox - Java Version Wechseln Allgemeine Java-Themen 2
L Java Version aus Tomcat ermitteln Allgemeine Java-Themen 3
P Check, welche Java Version installiert bevor ein Programm ausgeführt wird. Allgemeine Java-Themen 12
B A newer version of Java is needed to view the application. Allgemeine Java-Themen 17
E Java Version Details ermitteln Allgemeine Java-Themen 5
G Java ME Version Allgemeine Java-Themen 2
D Problem mit Java version? Allgemeine Java-Themen 4
ARadauer welche java version wird benutzt Allgemeine Java-Themen 4
E Welche Java-Version kennt isEmpty() ? Allgemeine Java-Themen 2
H java version Allgemeine Java-Themen 6
G Auslesen mit welcher Java-Version Anwendung kompiliert wurde Allgemeine Java-Themen 2
B Java Buch zu welcher Version empfehlenswert? Allgemeine Java-Themen 6
G Nachdem die neuste Version v. Java installiert-Fehlermeldung Allgemeine Java-Themen 22
P welche java version für javax.mail? Allgemeine Java-Themen 7
B Welche Java-Version? Allgemeine Java-Themen 7
D Java Version Allgemeine Java-Themen 2
M java.lang.UnsupportedClassVersionError: Bad version number i Allgemeine Java-Themen 5
vogella Version von Java ermitteln Allgemeine Java-Themen 2
A Java Version verstellen Allgemeine Java-Themen 2
K Java Version ermitteln (über System.getProperty hinaus) Allgemeine Java-Themen 6
S Ich verstehe meine Java-Version nicht Allgemeine Java-Themen 6
P Java, rar.exe(winrar cmd version) und cpu-auslastung 100% Allgemeine Java-Themen 27
B java-version bestimmen innerhalb von Programm Allgemeine Java-Themen 4
R Java version Allgemeine Java-Themen 3
X Unattended alte Java Version deinstalliern und Java 1.4.2. Allgemeine Java-Themen 3
sokobus java ältere Version - das laden dauert sooo lange Allgemeine Java-Themen 3
B Java-Version aus .class erfahren Allgemeine Java-Themen 6
A Die Java-Version des Clients in einem Java-Applet ermitteln Allgemeine Java-Themen 2
B Java Version Allgemeine Java-Themen 5
C Java-Version herausfinden Allgemeine Java-Themen 9
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20

Ähnliche Java Themen

Neue Themen


Oben