[Tests] changer le JDK via les préférences systèmes

molgow

Membre expert
Club iGen
4 Janvier 2002
5 496
613
40
Suisse
Hello tous!

Apple ne propose aucun moyen de changer le JDK par défaut. Même si Java 1.5 est installable sur Mac OS 10.4, il n'y a aucun moyen simple de pouvoir utiliser véritablement ce JDK lorsque nécessaire.

J'ai donc développé (rapidement: 2.5j de dév à 100%) un petit panneau de préférence permettant de changer facilement et rapidement la JDK utilisée. En quelques clics il est donc possible de changer la version de java utilisée lorsque vous tapez "java" ou "javac" (par exemple) dans un Terminal.

Le software est encore en développement et j'ai donc besoin de votre aide pour le tester et pour l'améliorer. Sur mon Mac Intel, je n'ai détecté aucun problème. De part la nature du logiciel, je cherche des testeurs ayant une certaine expérience avec le Terminal et Unix au cas où il surviendrait un problème (mais normalement rien de grave ne devrait pouvoir se passer).

Pour l'instant, il n'y a aucun traitement d'erreurs. Pour que vous soyez rassuré, sachez que le programme se contente de changer le lien symbolique /System/Library/Frameworks/JavaVM.framework/Version/CurrentJDK vers la version de votre choix.

Le logiciel est en pièce jointe de ce fichier. Pour qu'il fonctionne il faut Mac OS 10.3 minimum (requis par certains composants Cocoa que j'utilise) et je pense que 10.4 est mieux.
Je serais intéressé à avoir le feedback de personne sur 10.3 et 10.4 sur PowerPC. Le logiciel est Universal Binaries complétement.

Accessoirement je cherche à avoir un icône un peu plus jolie. Si vous avez des talents d'artistes et êtes prêts à m'aider, n'hésitez pas à me suggérer une icône plus jolie ;)

Merci pour votre aide,

Laurent


[ la dernière version se trouve ici ]
 
  • J’aime
Réactions: WebOliver
Superbe initiative :up:

Sous Panther ça coince:
Mac OS X Version 10.3.3 (assemblage 7F44)
2006-03-03 09:12:45 +0100
2006-03-03 12:49:07.173 System Preferences[412] *** -[NSBundle load]: Error loading code /Users/mpergand/Library/PreferencePanes/JavaSelector.prefPane/Contents/MacOS/JavaSelector for bundle /Users/mpergand/Library/PreferencePanes/JavaSelector.prefPane, error code 0 (link edit error code 0, error number 2 (dyld: /Applications/System Preferences.app/Contents/MacOS/System Preferences can't open library: /usr/lib/libgcc_s.1.dylib (No such file or directory, errno = 2)

))

2006-03-03 12:49:07.174 System Preferences[412] [NSPrefPaneBundle instantiatePrefPaneObject] (/Users/mpergand/Library/PreferencePanes/JavaSelector.prefPane): principalClass is nil.

Je pense qu'il faut que tu compiles avec le sdk 10.3.

Autre solution que j'utilise pour faire les lib jni, c'est de compiler en GCC 3.3 (pas en 4), pour modifier cette option, il faut faire un clic-droit sur le Target du projet et sélectionner get Info et cliquer sur l'onglet Rules.
 
Merci ! Je n'avais pas pensé à ça. En fait, avec les Universal Binaries, je ne suis pas certain de pouvoir faire fonctionner aussi pour 10.3. Et sachant que Java 1.5 est seulement installable à partir de 10.4, je suis pas convaincu que ça ait un grand intérêt de passer du temps à apporter la compatibilité pour 10.3 (sauf si on me prouve que des gens sont intéressés pour changer le JDK de 1.4 à 1.3 sous Panther ? :D) J'étais surtout intéressé à savoir si ça fonctionnerait aussi, mais dans le cas contraire, tant pis.
 
Hello,

Excellente initiative :up: !

J'ai pu installer, je suis sous Tiger ppc.

Un détail néanmoins me gène un peu: les liens symboliques sont listés dans la combo... cela complique un peu les choix :rateau:.

Voici (à titre d'exemple) le contenu de mon /System/Library/Frameworks/JavaVM.framework/Versions:
drwxr-xr-x 12 root wheel 408 Jan 26 22:16 .
drwxr-xr-x 10 root wheel 340 Dec 8 22:01 ..
lrwxr-xr-x 1 root wheel 5 Dec 8 22:01 1.3 -> 1.3.1
drwxr-xr-x 8 root wheel 272 May 14 2005 1.3.1
lrwxr-xr-x 1 root wheel 5 Sep 21 10:44 1.4 -> 1.4.2
drwxr-xr-x 8 root wheel 272 Jan 26 2005 1.4.2
lrwxr-xr-x 1 root wheel 5 Dec 8 22:01 1.5 -> 1.5.0
drwxr-xr-x 8 root wheel 272 Dec 15 15:49 1.5.0
drwxr-xr-x 6 root wheel 204 Feb 16 10:26 A
lrwxr-xr-x 1 root wheel 1 Dec 8 22:01 Current -> A
lrwxr-xr-x 1 root wheel 5 Sep 21 10:44 CurrentJDK -> 1.4.2
lrwxr-xr-x 1 root wheel 6 Dec 15 15:51 CurrentJDK1.5 -> 1.5.0/


gg
 
Merci pour le feedback.

En effet, il faut que je fasse en sorte de sélectionner uniquement les dossiers et non les liens, de telle manière que le menu propose "1.3.1", "1.4.2" et "1.5.0".
J'ai de la peine à retrouver ce que je veux avec Cocoa, du coup j'ai pas encore trouvé la classe et la méthode qui me donnera les infos que je souhaite sur un fichier :)
 
J'ai ajouté un traitement basique de certaines erreurs, supprimé les liens symboliques comme suggéré par GrandGibus et j'ai fait le packaging (je me suis un peu amusé :D) :
Télécharger Java Selector 1.0.

Je publierais sur mon site web perso une page avec de la doc et tout ce qu'il faut, mais je dois pour l'instant refaire mon site web.
 
excellent :up: !

Est-ce que tu livres les sources avec ? (ou un package séparé)
A noter qu'il y a un lien Préférence Panes avec le dmg...

En passant, comment as-tu fait pour le dmg ?.... pour CCAM+, j'automatise l'opération avec un shell et du ant ;).


Par contre, ça saoule, qu'est-ce qu'il faut faire pour pouvoir distribuer les coups de boules à qui on veut et en quantité illimitée :hein: ?
 
GrandGibus a dit:
Est-ce que tu livres les sources avec ? (ou un package séparé)
Oui je distribue les sources vu que j'ai mis une license GPL. Je peux te les envoyer par e-mail si tu le désires. Envoie moi juste un message privé. Dans un premier temps, je ne mettrais par contre pas les sources à disposition sur le web (la license GPL me le permet :p)

GrandGibus a dit:
A noter qu'il y a un lien Préférence Panes avec le dmg...
En passant, comment as-tu fait pour le dmg ?.... pour CCAM+, j'automatise l'opération avec un shell et du ant ;).
Euh oui, il y a un lien pour le dossier /Library/PreferencePanes, c'est juste (c'est marqué que c'est pour la désinstallation). C'est ça que tu voulais dire ?
Tu vois bien l'image de fond quand tu ouvres le .dmg ?
Tu m'intéresses bien avec ton script pour déployer le dmg, car c'est vraiment lourd et ennuyeux à faire ! J'ai regardé un peu comment ils faisaient pour Adium : ils utilisent aussi des scripts, mais c'était trop complexe à adapter (c'était un mélange de script shell, d'AppleScript et même peut-être de C d'après comme j'ai vu).
 
  • J’aime
Réactions: Macoute
Bonsoir l'ami, merci de cette petit app qui me semble bien pratique! Pratique oui car je ne sais pourquoi mais mon utilitaires Java Preferences plantes des que je veut changer de versions de java (passer de la 1.4.2 à 1.5). Malheureusement, même si ton app m'indique bien que j'ai effectuer le changement, lorsque je vérifie à l'aide du terminal (java -version) il m'indique désespérément JVM 1.4.2!:mad:
Je ne sais plus que faire... Quelqu'un à t'il déja eu ce prob? merci à vous
 
Salut et bienvenue sur MacGé :coucou:,


tout semble indiquer que quelque chose d'externe "court-circuite" la mécanique de base...

Peux-tu nous envoyer ton .profile ? Peut-être y aurait-il une quelconque variable d'environnement mal positionnée (PATH...) ?

A défaut, tu peux également lister le contenu du répertoire Java en faisant un ls -al /System/Library/Frameworks/JavaVM.framework/Versions/...
 
Merci GrandGibbus, des potes a moi mon pas mal parlez de la bonne ambiances de votre forum donc je vais essayer de mi mettre aussi :p
Je préviens tout de suite je suis pas très doué donc je n'ai pas bien compris avec le .profile? Je ne sais même pas ou le trouvé ;-)
J'ai listé les versions de java voici ce que j'ai trouvé:
Versions: -->
1.3
1.3.1
1.4
1.4.2
1.5
1.5.0
A
Current
Current JDK
Voilà, j'ai un peut peur de modifié le dossier Current JDK même si je suppose que ça arrangerais les choses. Merci encore.
ps: Comment ajoute t-on une image de mon ordi sur les messages? par exemple une image d'écran.
+++
 
Bon ton dossier Java semble être bon.
Quelle est la version de ton système ?
Tu indiques bien le mot de passe root lorsqu'on te demande un mot de passe ?
En tout cas, merci pour le feedback, même si comme ça, je vois pas trop d'où vient le problème...
Je vais essayer d'y réfléchir, même si là tout de suite c'est St-Patrick :love:
 
GrandGibus a dit:
Et que donne un echo $PATH ?
ça donne ceci:
Last login: Sun Mar 19 22:51:39 on console
Welcome to Darwin!
245:~ pierreduchene$ echo $PATH
/bin:/sbin:/usr/bin:/usr/sbin
245:~ pierreduchene$


ça veut dite quoi sans indiscrétion?;)
Autrement la version de mon systeme est là 10.4.5 tout est régulièrement mis à jour.

[Edit]: Je vient de faire ce que j'aurrais dû faire dès le début: fouiné dans le forum, du coup j'ai réussi a modifié ma version de java utilisé par le systeme pour compilé par contre toujours impossible de changer de version via l'application du coup mes application java qui on besoin de la version 1.5 ne marche toujours pas! m'enfin j'ai déja un eptite victoire, merci les gars
 
Le PATH contient une liste de répertoire dans lesquels le système d'exploitation va chercher les exécutables.

Quand tu lances une commande sans en donner le chemin absolu, l'OS va chercher dans les répertoires du PATH...

A titre d'exemple, les propriétés de mon système:
gibus:~ fred$ echo $JAVA_HOME
/Library/Java/Home

gibus:~ fred$ echo $PATH
... plein de choses:/Library/Java/Home/bin: plein d'autres choses...

et comme /Library/Java/Home est un lien symbolique qui se balade au gré des versions de Java (1.4, 1.5...), tout est transparent, et quand je fais java -version, c'est la commande java de /Library/Java/Home/bin... autrement dit, le bin du répertoire pointé par le lien symbolique !

(je sais pas si j'ai été très clair :sleep:)
 
Si si sa va, je m'était déja un peut renseigner sur des sites anglais et c'est bien ce que j'avais compris. Merci
 
À part ça, avec les infos que j'ai, je ne vois toujours pas pourquoi ça ne fonctionnait pas :nailbiting:
 
Bonjour,

Bravo pour cette application qui semble fonctionner très bien.

Malheureusement depuis que je l'ai installée je n'arrive plus à lancer des JAR excétubales avec Jar Launcher.

J'ai essayé de désinstaller mais le problème persiste.

Merci de venir à mon secours et m'indiquer comment je pourrais à nouveau utiliser Jar launcher.

Merci.
 
Bonjour,

Pourrais-tu me donner le résultat de la commande "ls -l /System/Library/Frameworks/JavaVM.framework/Versions/" (sans les guillemets) dans un terminal ?