Prüfen welche JRE-Version gebraucht wird

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
gibt es einen schnellen Weg zu überprüfen, welche JRE-Version benötigt wird um das Programm zu auszuführen?
 

T0M

Mitglied
Was mir dazu einfällt sind die Optionen des Java Compilers "source" und "target". Über target kannst du angeben, für welche (Mindest-)Version der Quellcode kompiliert werden soll. Gibt natürlich Einschränkungen, d.h. du kannst soweit ich weiß keinen Java 6 Sourcecode für eine JRE der Version 1.3 kompilieren (außer mit Zusatzprogrammen?).
 

sparrow

Top Contributor
Hallo Gast

möchtest du das aus einem Java Programm heraus feststellen oder allgemein?
Möchtest du also eine Klasse nachladen (z. B. aus einer Bibliothek) und vorher prüfen ob deine Java version ausreicht, oder hast du ein Java Programm und möchtest schauen welche JVM man dafür brauch?


Gruß
Sparrow
 
G

Guest

Gast
Irgendwie verstehe ich nicht was der Artikel mir sagen will, bzw. wie mir das helfen soll :cry:
 

Saxony

Top Contributor
Hiho,

oder:

JRE 1.1 installieren - schauen ob es läuft - wenn nicht uninstall 1.1 install 1.2 usw. bis zur 1.6.
Dann findest du auch die Mindestversion. :)

bye Saxony
 

bronks

Top Contributor
byto hat gesagt.:
... Die aktuellste. :roll:
Da brauchst garnicht so die Augen zu verdrehen. :D So großartig abwärtskompatibel ist Java auch wieder nicht und die Programme sollten günstiger weise mit der Javaversion ausgeführt werden mit der sie kompiliert wurden.

Javaprogramme verhalten sich gerne und oft auf jedem Betriebssystem anders und das auch wieder in Abhängikeit davon auf welchem BS kompiliert wurde. Höchste Vorsicht ist leider immer geboten.

Grosse bis unlösbare Probleme durch die Verwendung von neueren VM gibt es genug. Viele sehr bedeutende Programme laufen immernoch auf Java1.3.1, da es einfach zu viel Kosten würde diese umzubauen, aber auf der anderen Seite laufen die Programme nicht zuverlässig mit JVM > 1.3.1.
 

byte

Top Contributor
Welche bedeutenden Programme wären das?

Kenne bisher nur Probleme, ältere Programme mit einer neuen Java-Version zu kompilieren, nicht aber ein älteres Kompilat mit einer neuen JRE auszuführen. Bestes Beispiel ist das derzeitige Projekt, in dem ich tätig bin. Kompiliert mit 1.4 läuft es problemlos mit JRE 5 oder 6.
 

bronks

Top Contributor
byto hat gesagt.:
Welche bedeutenden Programme wären das? ...
Es ist nichts öffentlich zugängliches bzw. käufliches.

byto hat gesagt.:
... Kenne bisher nur Probleme, ältere Programme mit einer neuen Java-Version zu kompilieren, nicht aber ein älteres Kompilat mit einer neuen JRE auszuführen. Bestes Beispiel ist das derzeitige Projekt, in dem ich tätig bin. Kompiliert mit 1.4 läuft es problemlos mit JRE 5 oder 6.
Von 1.4 aufwärts sind mir bis jetzt keine vergleichbare Probleme untergekommen. Davor wurden bei jeder Javaversion vorhandene Sachen so verbogen, daß es nicht mehr lustig war. Das für die Kompatibilität größte Desaster ist die Version von Swing, die ab Java1.4 dabei ist. Da passieren mit alten Programmen offensichtliche Fehler, die ein Programm teilweise unbrauchbar machen und auch in der Lage sind vorhandene Daten zu vernichten, wenn man die Programme mit einer neueren JVM einsetzt.
 
T

tuxedo

Gast
Also ich kenn da bis dato nur eines:

Das ist eine Anwendung für Reisebüros. Damit werden Flüge bei den Fluglinien gebucht. Nennt sich "Amadeus".

Aus einem mir unerklärlichen Grund läuft das Programm nicht mehr richtig wenn ein JRE über 1.4.2 Update 10 installiert ist.

Warum? Kein Plan. Das weiß glaub ich keiner so genau (nichtmal der Amadeus Support). Fazit: Hat man noch andere Java.-Programme, die z.B. 1.5 brauchen, dann kommt man bei Amadeus um zwei JRE Installationen nicht drum rum.

Würde mich mal interessieren was die Gründe für die mangelnde Kompatibilität sind? (Außer vielleicht der Verwendung von längst überfalligen "deprecated" Methoden).

- Alex
 

Saxony

Top Contributor
alex0801 hat gesagt.:
Würde mich mal interessieren was die Gründe für die mangelnde Kompatibilität sind? (Außer vielleicht der Verwendung von längst überfalligen "deprecated" Methoden).

Meine Theorie hierzu:

Wenn eine Methode in irgendeiner Version deprecated wird, denken die Entwickler noch die nächsten 1-2 Versionen daran diese weiterhin mit zu unterstützen/mitzuschleifen.
Je länger das aber her ist, um so wahrscheinlicher wird es, dass Änderungen in den Tiefen von Java vorgenommen werden. Diese Änderungen beziehen sich dann aber auf die Ersatzmethoden zu den deprecated und nicht mehr auf die deprecated selber.
Verwendet aber nun eine Anwendung diese alten deprecated Methoden und zeitgleich eine neue JRE, kann es zu Fehlern kommen.

bye Saxony
 

byte

Top Contributor
bronks hat gesagt.:
Von 1.4 aufwärts sind mir bis jetzt keine vergleichbare Probleme untergekommen. Davor wurden bei jeder Javaversion vorhandene Sachen so verbogen, daß es nicht mehr lustig war. Das für die Kompatibilität größte Desaster ist die Version von Swing, die ab Java1.4 dabei ist. Da passieren mit alten Programmen offensichtliche Fehler, die ein Programm teilweise unbrauchbar machen und auch in der Lage sind vorhandene Daten zu vernichten, wenn man die Programme mit einer neueren JVM einsetzt.
Das ist richtig, betrifft aber doch eher einen kleinen Teil Anwendungen, die älter als 2002 und heute noch im Einsatz sind (kenne persönlich wenige bis gar keine).
 
T

tuxedo

Gast
Wenn ich deine Fassung mal kürzen darf:

deprecated methoden sind irgendwann so verbuggt (bedingt durch die Änderungen in den Java-Eingeweiden), dass das Programm nicht mehr funktioniert.

Aus meiner Sicht der Dinge: Das ist Quick'n'Dirty und zeugt von keiner guten Qualität... Und Geld machen die auch noch damit. *unverschämt*

Ander sieht es aus, wenn ein Programm für eine aktuelle Version geschrieben wurde, und das Programm, 3 JRE Generationen später immer noch eingesetzt wird. Damals, zur Zeit der Entwicklung waren die Methoden noch gar nicht deprecated, und 3 Generationen später sind sie es, und das sogar schon endgültig.

In beiden Fällen kann Java nix dafür dass keine echte abwärtskompatibilität besteht... Schließlich waren die Änderungen ja lange angekündigt.


Tja. Das läuft ja wieder auf den selben Fakt hinaus: Entwickler sind zu Faul sich auf neue Methoden einzustellen, und verwenden, mal angenommen sie benutzen ein aktuelles JDK, jetzt schon alte Methoden die dann in der kommenden JRE/JDK nicht mehr funktionieren.
Und das würde bronks Argument entkräften.

Oder gibts noch nen Grund warum ein "altes Programm" nicht mit einer "neuen" JRE läuft (von deprecated methoden mal abgesehen).

- Alex
 

bronks

Top Contributor
Dass die Entwickler faul sind kann man so nicht stehen lassen. Eher ist es dem Auftraggeber nicht das Geld wert, entsprechende Änderungen durchzuführen. So habe ich hier ein Projekt welches 1999 begonnen wurde mit > 500000 LOC, welches ausschließlich für Java1.3.1 freigegeben ist. Erstens läßt es sich nur mit 1.3 kompilieren, zweitens macht das mit 1.3 kompilierte auf >1.4 Probleme und drittens verwendet es Libs, die nicht mehr weiterentwickelt wurden. Prognostizierter Aufwand, um es auf eine neue Javaversion zu bringen liegt bei +-1250 Manntagen, wobei altlasten abgeschüttelt werden könnten. Niemand ist bereit soviel Geld auszugeben. Da installiert man doch lieber eine zweite JRE.

Und jetzt lasse ich meiner bösen Zunge freien Lauf: Mit .NET von Microsoft gibt es diese Probleme nicht, denn ein Programm welches für 1.1 gemacht ist verlangt nach der 1.1 und läuft nicht auf 2.0.
 
T

tuxedo

Gast
Naja, ein 8 Jahre altes Programm.. Da hat das wirklich nix mit faul zu tun. Das ist einfach der lauf der Zeit. 1.3.x ist halt einfach schon mehrfach überholt. Das auf den neusten Stand zu biegen ist klar aufwendig.

Das was ich gemeint habe ist, dass es "Faul" wäre, wenn ihr damals schon, 1999 mit Java 1.3.1 deprecated Methoden benutzt hättet...
DAS wäre Faul.

Und genau diese Faulheit scheinen heute noch manche Firmen zu praktizieren.

Dass M$ nicht für die beste Kompatibilität steht wissen wir ja. Erst letzt hat mein Dad seinen 2,5 Jahre alten Drucker entsorgt weil Windows Vista den Treiber nicht mehr mochte und der Hersteller es sich wohl nicht leisten wollte Microsoft hinterher zu entwickeln.
Ein Generationensprung und schon ist man raus.
Bei Java dauerts zum Glück meist länger wie nur einen einzigen Versionssprung bis deprecated Methoden rausfallen.

- Alex
 
G

Guest

Gast
Anonymous hat gesagt.:
Irgendwie verstehe ich nicht was der Artikel mir sagen will, bzw. wie mir das helfen soll :cry:
Du liest einfach die Klasse mit der main-Methode aus der Jar-Datei oder woher auch immer und prüfst die Version im Header der Datei. Anhand der Version kannst du ermitteln, welches JRE benötigt wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Prüfen, welche anderen Programme laufen Allgemeine Java-Themen 5
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
OnDemand Prüfen ob Bild defekt ist Allgemeine Java-Themen 4
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
W Classpath Reflexion - Prüfen ob man auf ein Feld ändern kann Allgemeine Java-Themen 2
OnDemand Bild prüfen ob defekt Allgemeine Java-Themen 3
B Java Mail: Prüfen, ob Email hat ein Anhang oder nicht Allgemeine Java-Themen 2
Bluedaishi Prüfen ob Datei noch geöffnet ist Allgemeine Java-Themen 59
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
J Mit Lombok Integer Range prüfen Allgemeine Java-Themen 6
S Prüfen ob Textfile existiert Allgemeine Java-Themen 9
E Programm auf Installation prüfen Allgemeine Java-Themen 1
S Binärbaum prüfen Allgemeine Java-Themen 0
L String auf zahlenwert prüfen Allgemeine Java-Themen 13
W Datum prüfen + zweistellig Allgemeine Java-Themen 11
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
Z Java Exceptions - Auf leeres Feld prüfen Allgemeine Java-Themen 10
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
M .jar nach Datei prüfen Allgemeine Java-Themen 2
B Existenz eines Files max 30 sec prüfen Allgemeine Java-Themen 5
B Prüfen, ob ein Element in der Liste nicht existiert Allgemeine Java-Themen 3
F Cardlayout prüfen ob schon vorhanden, keine doppelten Allgemeine Java-Themen 3
turmaline Regex gegen Regex prüfen Allgemeine Java-Themen 4
S Lambda Ausdrücke: @FunctionalInterface Instanzen auf null prüfen Allgemeine Java-Themen 9
D ArrayList index auf gültigkeit prüfen Allgemeine Java-Themen 12
C Best Practice [Arrays] Wie sinnvoll prüfen, ob Array primitive Datentypen enthält? Allgemeine Java-Themen 6
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
Y Prüfen ob ein Graph immer einen von mehren Enden erreicht Allgemeine Java-Themen 4
O Prüfen ob String eine Zahl mit maximal 2 Nachkommastellen ist Allgemeine Java-Themen 4
M datei aufruf prüfen Allgemeine Java-Themen 9
D Best Practice Prüfen ob jar nachträglich geändert wurde Allgemeine Java-Themen 2
B Dateien prüfen auf Gleichheit Allgemeine Java-Themen 5
H String auf Zahlen prüfen Allgemeine Java-Themen 4
T auf Valides Datum prüfen Allgemeine Java-Themen 12
N Java Version Prüfen lassen Allgemeine Java-Themen 11
S Variablen Prüfen ob Number vom Typ Integer, Float, Double, ... ist Allgemeine Java-Themen 2
E selber Klassen kompilieren/ prüfen Allgemeine Java-Themen 5
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
T Methoden Zahlenpalindrom laufzeitoptimiert prüfen Allgemeine Java-Themen 4
U ResourceBundles auf vollständigkeit prüfen Allgemeine Java-Themen 2
C jollyday: prüfen, ob Datum = Feiertag Allgemeine Java-Themen 8
C Prüfen ob sich ein Punkt innerhalb einer Kugel befindet (Java3D,nicht-lineare GLS) Allgemeine Java-Themen 5
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
E Prüfen ob Fenster mit Namen offen ist Allgemeine Java-Themen 2
M Binärbaum auf vollständigkeit prüfen Allgemeine Java-Themen 4
S Mail Adressen Syntax prüfen Allgemeine Java-Themen 22
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
N List auf null prüfen Allgemeine Java-Themen 2
B generischen Typ prüfen Allgemeine Java-Themen 7
D prüfen, ob Enums bestimmte Elemente enthalten Allgemeine Java-Themen 3
N Prüfen ob Methode ausgeführt wird und diese ggf. abbrechen? Allgemeine Java-Themen 8
B Prüfen ob ein Programm gestartet wurde Allgemeine Java-Themen 23
N ArrayList nach Reihenfolge prüfen Allgemeine Java-Themen 2
C Prüfen auf Zahl und 6 stellig fehlerhaft? warum? Allgemeine Java-Themen 7
D Wie prüfen, ob ein String Teil eines Enum Types ist? Allgemeine Java-Themen 12
H Prüfen, ob doppete Werte in int-Array vorhanden sind Allgemeine Java-Themen 16
data89 Bilder mit Java prüfen - suche dringend Hilfe Allgemeine Java-Themen 8
S Prüfen auf Hex-Wert fester Länge! Allgemeine Java-Themen 5
K Zip dateien prüfen Allgemeine Java-Themen 3
G ZIP Archiv auf Konsistenz prüfen Allgemeine Java-Themen 2
T Parameter einer Klasse auf Interface prüfen Allgemeine Java-Themen 6
L Passwort mit Regulärem Ausdruck prüfen Allgemeine Java-Themen 6
P Sound Buffer prüfen Allgemeine Java-Themen 12
B PrintService - Wie prüfen ob Drucker online ist? Allgemeine Java-Themen 2
A Textfeld prüfen, ob ein Punkt eingegeben wurde Allgemeine Java-Themen 8
flashfactor Prüfen ob bereits eine Instanz gestartet ist Allgemeine Java-Themen 2
C Prüfen, ob eine Methode eine andere überschreibt! WIE? Allgemeine Java-Themen 8
T Prüfen, ob Char ein Quantifier ist Allgemeine Java-Themen 6
N Prüfen ob Objekt in Liste enthalten ist Allgemeine Java-Themen 17
J Mit Patternmatching einen Satz prüfen Allgemeine Java-Themen 12
G Prüfen ob Ziffern einer Zahl pandigital sind? Allgemeine Java-Themen 15
M Prüfen ob Variable vorhanden / initalisiert ist Allgemeine Java-Themen 4
J Wie prüfen ob eine Datei vom OS fertig geschrieben wurde? Allgemeine Java-Themen 6
TheJavaKid Zeile auf existenz von String prüfen. Allgemeine Java-Themen 19
A Weshalb man Parameter auf Gültigkeit prüfen sollte Allgemeine Java-Themen 6
N Prüfen ob ein String in einen Integer umgewandelt werden kan Allgemeine Java-Themen 4
O String auf zahlen prüfen (java 1.3) Allgemeine Java-Themen 4
G Datei Zugriffsrechte prüfen Allgemeine Java-Themen 2
Linad Bilder auf Gleichheit prüfen Allgemeine Java-Themen 6
G ResultSet auf Inhalt prüfen? Allgemeine Java-Themen 2
H Prüfen, ob es sich um ein Integer handelt Allgemeine Java-Themen 4
C String str prüfen Allgemeine Java-Themen 3
H Prüfen ob ein String grösser als 4 Zeichen ist Allgemeine Java-Themen 3
F Prüfen, ob Windows oder UNIX Allgemeine Java-Themen 2
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
P Feststellen, Welche Classes ich aus einem JAR nutze? Allgemeine Java-Themen 6
H Apache fop -- welche Möglichkeit gibt es um den Fortschritt anzuzeigen (Progressbar) Allgemeine Java-Themen 5
goldmensch Datentypen Welche Methode hat die bessere Performance? Allgemeine Java-Themen 12
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
F Java Web App - welche Technologien? Allgemeine Java-Themen 11
S Welche API? Allgemeine Java-Themen 6
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
K Welche Zertifizierung passt? Allgemeine Java-Themen 10
A Variable, welche Exeption wirft als "Global" deklarieren Allgemeine Java-Themen 13
J Videokonferenz mittel Java ? Welche Möglichkeiten habe ich ? Allgemeine Java-Themen 2
J Welche Layouts benutzt ihr? Allgemeine Java-Themen 2
G Wiedereinstieg, welche Java Version empfehlt ihr Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben