2008-12-11 9 views
4

J'ai une installation multi-utilisateur eclipse (3.4) avec une zone de configuration maître partagée. Les utilisateurs doivent remplacer user.name par leur nom complet et la méthode habituelle (ajouter -Duser.name = ... à eclipse.ini) ne convient pas car le remplacement doit être par utilisateur. J'ai essayé d'installer user.name dans config.ini (dans le répertoire configuration de chaque utilisateur):eclipse: override user.name dans config.ini

user.name=Luca Tettamanti 

mais il fonctionne, Eclipse conserve encore le nom de connexion. La chose étrange est que:

user.foobar=Luca Tettamanti 

est correctement ramassé. Est-il possible de surcharger user.name dans cette configuration?

+0

ajouter un commentaire sur le lanceur personnalisé: cela fonctionnerait-il pour vous? – VonC

+0

Pas tout à fait, mais ça m'a donné une bonne idée, voir mon commentaire. Vous voulez fixer votre réponse pour référence future? –

+0

J'ai corrigé ma réponse, y compris votre commentaire. – VonC

Répondre

3

Ce has been reported before en effet. Pourquoi n'utiliseriez-vous pas un lanceur Eclipse personnalisé (un script .cmd), qui modifierait eclipse.ini, puis appellerait eclipse.exe?

Ce script peut récupérer le nom complet avec un COMAND comme:

net user %username% /domain | find /i "full" 

De cette façon, dans Windows, votre lanceur personnalisé courrait Eclipse avec:

eclipse.exe -clean --launcher.ini shared\eclipse.ini -vmargs -Duser.name=%FULL_NAME% 

en utilisant le partage eclipse.ini, mais en spécifiant la valeur user.name.


Dans Linux, pour relayer le contenu de la variable shell USER à Eclipse, vous devez faire ceci:

exec eclipse -clean --launcher.ini shared/eclipse.ini -vmargs -Duser.name=`eval "echo $USER"` 
+0

Les utilisateurs ne peuvent pas écrire sur eclipse.ini, cela irait à l'encontre du but d'une installation partagée ... –

+0

Presque là :) J'ai trouvé 2 solutions: eclipse --launcher.ini utilisateur/eclipse.ini (fichier ini par utilisateur) , ou: eclipse -vmargs -Duser.name =% FULL_NAME% (notez -vmargs) Le premier permet plus de personnalisations, mais ce dernier est plus facile à maintenir puisqu'il n'y a qu'un seul fichier ini. –

+0

Merci [Joel Korhonen] (http://stackoverflow.com/users/2841575/joel-korhonen), pour l'édition pour Linux. – VonC

0

Je suis un peu clair quant à votre intention.

La propriété système user.name est significative car elle doit refléter le nom d'utilisateur de l'entité ayant jamais invoqué la machine virtuelle Java. Si vous faites cela à des fins d'affichage, et que vous avez le contrôle du plugin qui le consomme, alors vous devriez probablement utiliser votre propre méthode de découverte du nom d'affichage.

Un config.ini personnalisé ou un raccourci tel que décrit par @VonC conviendrait pour cela.

+0

L'objectif principal est d'obtenir un nom lisible par l'utilisateur pour $ {user} (templates, SVN commits, etc.).Le nom d'utilisateur n'a pas vraiment de sens en dehors du bureau. OTHO comme vous dites quelque chose pourrait s'appuyer sur user.name étant le nom d'utilisateur réel: | –

+0

Je ne suis pas sûr que vous pouvez remplacer la propriété système user.name. – jamesh

+0

Vous pouvez le faire, encore je me demande si c'est une bonne idée. Rien ne casse sur ma configuration (pour l'instant) ... –