2010-03-15 4 views
3

J'ai mon ordinateur configuré en japonais (hé, c'est une bonne pratique de la langue), et tout est bien et dandy ... sauf javac. Il affiche des messages d'erreur localisés sur la console, mais ils sont en Shift-JIS, non UTF8:OS X: La sortie du terminal de javac est brouillée

$ javac this-file-doesnt-exist.java 
javac: [email protected]?C??????????܂???: this-file-doesnt-exist.java 
?g????: javac <options> <source files> 
?g?p?\?ȃI?v?V?????̃??X?g?ɂ??ẮA-help ???g?p???܂ 

Si je redirigez la sortie vers nkf -w, il est lisible, mais ce n'est pas vraiment beaucoup d'une solution:

$ javac this-file-doesnt-exist.java 2>&1 | nkf -w 
javac: ファイルが見つかりません: this-file-doesnt-exist.java 
使い方: javac <options> <source files> 
使用可能なオプションのリストについては、-help を使用します 

Tout le reste fonctionne bien (avec UTF8) de la ligne de commande; Je peux taper des noms de fichiers en japonais, l'achèvement des onglets fonctionne bien, vi peut éditer les fichiers UTF-8, etc. Bien que java lui-même crache tous ses messages en anglais (ce qui est bien).

est ici les bits pertinents de mon environnement:

LC_CTYPE=UTF-8 
LANG=ja_JP.UTF-8 

De quoi il ressemble, javac ne ramasse pas l'encodage correctement, et java ne ramasse pas la langue du tout. J'ai aussi essayé -Dfile.encoding=utf8, mais cela ne fonctionne pas, et la documentation sur la localisation de la chaîne d'outils JVM est assez inexistante, du moins chez Google.

Addendum:

Macports OpenJDK6 a un meilleur comportement:

$ /opt/local//share/java/openjdk6_bootstrap/bin/javac this-file-doesnt-exist.java 
javac: file not found: this-file-doesnt-exist.java 
Usage: javac <options> <source files> 
use -help for a list of possible options 
+0

@Don Werve: Warau :) +1 Konitchiwa Don, Genki? Vous avez écrit * J'ai mon ordinateur (OS X) configuré en japonais * mais vous n'avez pas vraiment raison? Vous avez un compte d'utilisateur particulier configuré en japonais, car OS X est très différent de Windows (dans Windows, si vous voulez un Windows japonais, vous avez besoin du CD d'installation japonais, du moins c'est comme ça [été là, j'ai installé Windows 98 [!!!] en japonais). Sous OS X, vous pouvez changer la langue de l'OS à volonté AFAIK. Pas que cela aide avec votre question intéressante (au moins pour un nerd OS X/Java/japonais comme moi;) – SyntaxT3rr0r

+0

@WizardOfOdds: OS X n'a ​​pas différentes versions localisées pour différents marchés, donc quand vous allez installer un OS frais , vous pouvez choisir une valeur par défaut dans l'une des langues disponibles. Alors oui, la langue par défaut de mon ordinateur est en effet le japonais. –

+0

c'est mieux que sur OS X autant que je sache, ce qui était le point de mon commentaire: même après une installation, vous pouvez * changer à tout moment * votre langue (si je ne me trompe pas). Si vous voulez essayer le chinois, vous pouvez ... Et puis revenez en arrière. Cela ne signifie pas une ré-installation. – SyntaxT3rr0r

Répondre

1

C'est un problème connu de javac sur OS X dans un environnement japonais. J'avais moi-même fait quelques recherches sur Google, et je n'ai trouvé aucun remède fondamental. Pour l'instant, la solution temporaire que j'utilise est

javac -J-Dfile.encoding=utf8 

qui donne les messages d'erreur en japonais codés en UTF-8. Notez que ce n'est pas -D, mais -J-D. Si vous voulez que les messages d'erreur en anglais, utilisez

LC_ALL=C javac -J-Dfile.encoding=utf8 

Vous pouvez toujours en faire un alias, si vous souhaitez:

alias javac="LC_ALL=C javac -J-Dfile.encoding=utf8" 
+0

Cela a fait l'affaire, merci.本 当 に か り ま し た. –

0

Quel encodages vous avez activé dans le Terminal? Je suppose qu'il ne permet pas l'encodage que javac utilise. Regardez sous Préférences> Codages.

+0

J'ai tous les encodages cochés sous 'Japanese', plus tous les encodages UTF- *. –

Questions connexes