Javaversion unter OS X 10.4.2 auf 1.5(.0) umstellen

Crian

Aktives Mitglied
Thread Starter
Dabei seit
25.05.2005
Beiträge
558
Reaktionspunkte
7
Hallo,

ich arbeite mich auf meinem iBook in Java ein. Dazu verwende ich Eclipse und das "Java-ist-auch-eine-Insel" Buch unter http://www.galileocomputing.de/openbook/javainsel4/.

Nun meine Frage: Ich würde gerne die neuen Sprachfeatures von Java 5 nutzen, da sie mir als C/C++/Perl-Programmierer mit enums und der vereinfachten for-Schleife entgegen kommen.

Also hab ich schonmal die 1.5.0er Version von Apple (als package) heruntergeladen und installiert.

java -version sagt aber leider "1.4.2_07".
which java sagt "/usr/bin/java".

Auch in Eclipse scheint die 1.4.2er Version zu werkeln, obwohl ich dort unter den Preferences -> Java -> Installed JREs die JVM 1.5.0 angehakt habe.

(Außerdem liess sich über Help -> Software Updates -> Find and Install -> Search for new features to Install -> Cheetah diese Cheetah-Erweiterung nicht richtig installieren. Die genaue Fehlermeldung muss ich nochmal überprüfen, wenn das iBook am Netz hängt. Aber vielleicht hat trotzdem schonmal jemand eine Idee dazu.)

Auf jeden Fall mag Java mein kleines Testprogramm mit enum überhaupt nicht, was verständlich ist, wenn nicht Java 5 zum Zuge kommt.
 
Am einfachsten du biegst den Symlink "CurrentJDK" unter /System/Library/Frameworks/JavaVM.framework/Versions von 1.4.2 auf 1.5.0 um. Ich denke du brauchst keine großen Instruktionen dazu, aber dennoch... ;) Am einfachsten du benennst das alte CurrentJDK nach CurrenJDK.142 um (mit mv) und erstellst dann mit ln -s 1.5.0 CurrentJDK einen neuen Symlink. Ein java -version sollte dann folgendes zeigen:

java version "1.5.0_02"

Dirk
 
Danke für die Antwort, klingt gut.

Hmm... das System lässt mich leider nicht moven... auch nicht mit su -c '...'. Was tun?
 
Also ich habe das alles per sudo hinbekommen.

Also (im entsprechenden Ordner):

1. sudo mv CurrentJDK CurrentJDK.142 (beim ersten Mal musst du dein Kennwort eintippen, aber das weisst du sicher :) )
2. sudo ln -s 1.5.0 CurrentJDK

Das sollte eigentlich tun :)

Dirk
 
Ah danke, hab nur su probiert... klappt :)

Ich habs so gemacht:

1) sudo ln -s 1.4.2 CurrentJDK_1_4_2
2) sudo rm CurrentJDK
3) sudo ln -s 1.5.0 CurrentJDK

Denn das mv hat nicht so wie von Unix gewöhnt funktioniert. Werden Links hier irgendwie anders behandelt?

Aber wie auch immer, java -version zeigt jetzt 'java version "1.5.0_02"' an, wie gewünscht.

Danke!
 
Ist ja merkwürdig. Eigentlich sollte sich das mv normal verhalten, die Links bleiben dennoch auf der Datei sitzen. Naja, Hauptsache es klappt :)

Dirk
 
Ja, allerdings hatte ich nach dem mv plötzlich ein "CurrentJRE.1.4.2" Link im 1.4.2-Verzeichnis, was ich mir überhaupt nicht erklären konnte. Der Befehl war "sudo mv CurrentJRE CurrentJRE.1.4.2" gewesen (wenn ich das jetzt noch richtig im Kopf habe).

Hatte dann keine große Lust dem auf den Grund zu gehen und hab das Problem "umgangen".
 
moin

Wenn ich mich recht entsinne, ist nach der Installation im Ordner Dienstprogramme ein tool, mit dem man einstellt, wann welche Java-Version benutzt werden soll...

Cat
 
oh stimmt:

/Programme/Dienstprogramme/Java/J2SE 5.0/Java Preferences.app
 
Das Programm galt aber imho nur zum Umstellen des JDK für Java Applets usw. (also die Verwendung im Webbrowser etc.), nicht aber für das JDK mit dem man entwickeln kann, um seine Apps auf 1.5 zu trimmen.

Dirk
 
stimmt

Es kann also nicht schaden, beides umgestellt zu haben.
 
hallo,
ich möchte auch mit java auf dem mac anfangen und habe dafür die neueste version geladne und das installationsdingens ausgeführt.
wie bereits beschrieben, wird nach eingabe von "java -version" auch die alte angezeigt. ich habe als antilinuxuser keine ahnung, was der unten zitierte befehl macht, aber bei mir ist er nicht von erfolg gekrönt. schritt 1 wird kommentarlos quitiert, der zweite bringt folgendes:
rm: CurrentJDK: No such file or directory.

kann mir einer eine idiotentaugliche schritt für schritt anleitung geben?
danke. :-D


Crian schrieb:
Ah danke, hab nur su probiert... klappt :)

Ich habs so gemacht:

1) sudo ln -s 1.4.2 CurrentJDK_1_4_2
2) sudo rm CurrentJDK
3) sudo ln -s 1.5.0 CurrentJDK

Denn das mv hat nicht so wie von Unix gewöhnt funktioniert. Werden Links hier irgendwie anders behandelt?

Aber wie auch immer, java -version zeigt jetzt 'java version "1.5.0_02"' an, wie gewünscht.

Danke!
 
derhenry schrieb:
schritt 1 wird kommentarlos quitiert, der zweite bringt folgendes:
rm: CurrentJDK: No such file or directory.

kann mir einer eine idiotentaugliche schritt für schritt anleitung geben?

die kommandos setzen voraus, dass du vorher schon im richtigen verzeichnis bist...
also als allererstes:
cd /System/Library/Frameworks/JavaVM.framework/Versions/
 
thx..

hatte vor einigen Tagen das gleiche Problem, hatte einfach ganz dreckig die /usr/bin/java gelöscht und das 1.5er Verzeichnis in meine Path Variable eingetragen..was man nicht so alles im Halbschlaf anstellt..
 
oneOeight schrieb:
die kommandos setzen voraus, dass du vorher schon im richtigen verzeichnis bist...
also als allererstes:
cd /System/Library/Frameworks/JavaVM.framework/Versions/

Ja, das stand im Beitrag über meinem: "im richtigen Verzeichnis" ;)
 
vielen dank jungs, hat alle funktioniert.
 
noch ne frage: bei der verwendung von xcode wird nach der oben beschriebenen prozedur auch auf java 1.5 zugegriffen? wie kann man zwischen 1.4 und 1.5 switchen?
 
Gibt's eine Möglichkeit zumindest Java 1.4.2_07 unter 10.3.9 zu installieren?
 
inwieweit is die Version den "alltagstauglich"

hab jetzt auch mal nach der "Anleitung" hier (Unix Neuling) das Ganze eingestellt, und naja, viel funktionieren tut wenig...

Mein Eclipse kann mit Generics recht wenig bis gar nichts anfangen, bei einem simplen

Set<Book_1_5> books = new TreeSet<Book_1_5>()

bringt er mir

The type Set is not generic; it cannot be parameterized with arguments
<Book_1_5>

und bei einem, vor dem umstellen laufenden Programm, bringt er ne Menge Fehler:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Tetris (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

alle programme wurden unter ner Dose programmiert und liefen unter 1.5 tadelos.
Jedoch sind das alle kleine Fragmente, die im Rahmen der Studium Übungen enstanden, also keine wirklich portierung nötig, und unter 1.4 liefen die (1.4 kompatiblen) Programme ja noch?
 
Mit dem neuen Release vom 9. Dezember hat sich das manuelle Umstellen ja jetzt erledigt :) Wurd auch Zeit :D
 
Zurück
Oben Unten