« Return to Thread: 出力ウィンドウの文字化け (netbeans6.5.1/MacOSX/JavaFX)

Re: 出力ウィンドウの文字化け (netbeans6.5.1/MacOSX/JavaFX)

by S.Takahashi :: Rate this Message:

Reply to Author | View in Thread

片貝さん、こんにちは、高橋です。

Dock(finder)から起動しているので、.MacOSX/environment.plistを設定しない
と環境変数として見えない、ということだったみたいです。申し訳ありません。
今まではbash_profileにだけ書いていました。

netbeans_jdkhome=${JAVA_HOME}

と書くためにplistを書いら文字化けしなくなったので、ようやく気がつきまし
た。.MacOSX/environment.plistの扱いを勘違いしてました。

その他、いろいろ教えて頂いた件は、これから確認してみようと思います。

取り急ぎ、環境変数の件だけでもと思い返信させて頂きました。いろいろお手数
をおかけして申し訳ありませんでした。ありがとうございます。

よろしくお願いします。


Masaki Katakai さんは書きました:

> 高橋さん、
>
> いろいろと確認していただきありがとうございます。私の環境はまだ
> Java6 は 1.6.0_07 なのでまったく同じ環境というわけではないのですが、
>
>  > ると。とすると、最初に文字化けしていたのも、JavaFXがnetbeans_jdkhomeを見
>  > てJDK6を向き、Shift JISになっていたからのように思われます。
>
> ん〜これはたぶん違うと思います。Shift JIS になっているのが問題
> ではなくて、JavaFX(javafxpackager) の出力と、NetBeans がそれを
> 読み込んでいるエンコーディングが違うために発生していると考えています。
>
> 私の理解だと NetBeans の出力ウィンドウは NetBeans のデフォルトの
> エンコーディングを使って外部プログラムの出力を読み込んでいます。
>
> 高橋さんの最初のケースでは、
>
>  >> ダイアログでは Java のバージョンはいくつになってますか?
>  >
>  > 1.6.0_13になってます。
>
> なので、NetBeans が使っているエンコーディングはすでに Shift JIS ですね。
> JavaFX が Shift JIS でエラーを出力していれば問題はないはずですが、
> 文字化けしていたということは javafxpackager が JDK5 を使い、
> コンパイルエラーを UTF-8 で出力していた、ということになります。
> javafxpackager の UTF-8 の出力を NetBeans は Shift JIS を使って
> 読み込みんでいたために文字化けが発生していたわけです。
>
> この状況で -J-Dfile.encoding=UTF-8 を付けて NetBeans が使う
> エンコーディングを強制的に UTF-8 にしたので、NetBeans と
> JavaFX が使うエンコーディングが UTF-8 で一致し、文字化けが
> 解消されたということですね。
>
>
> 高橋さんの今の環境で動かないのはなぜかわかりませんが、JavaFX で
> どの JDK が使われているかは NetBeans から JavaFX のアプリケーションを
> 1つ実行して ps コマンドでプロセスを確認してみてください。
>
> このように一致していれば文字化けはしないと思います。NetBeans を
> JDK6 に、JAVA_HOME も JDK6 に設定して起動しました。
> (ただしエンコーディングは Shift JIS です)
>
>  4134 ttys001    0:35.93
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
> -Djdk.home=/Sys
>  4156 ttys001    0:01.51
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
> -Djava.library.
>
> これは JAVA_HOME なしで NetBeans を JDK6 を使って起動
> した場合です。上の NetBeans は JDK6 ですが下の javafx は
> JDK5 なので文字化けを起こします。
>
>  4638 ttys001    0:39.68
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
> -Djdk.home=/Sys
>  4672 ttys001    0:01.01
> /System/Library/Frameworks/JavaVM.framework/Home/bin/java
> -Djava.library.path=/Library/J
>
>  > 一方、ターミナルで実行した場合は、JAVA_HOMEがなかったので、片貝さんご指
>  > 摘のデフォルトディレクトリにあるJDK5を見ていてUTF-8だったけど、ターミナ
>  > ルもUTF-8だったので文字化けしなかったと。
>
> はい、正しいと思います。
>
>  > 本当はUTF-8で統一したいので、JDK6をUTF-8にする方法があれば一番ありがたい
>  > のですが。
>
> そうですね、どこか設定ファイル等を変更して変更出来るのか
> どうかは、すいません、私にはちょっとわかりません。どなたか Mac に
> 詳しい方で正式な方法を知っていたら教えてください。
>
> JavaFX だけでよいのであれば javafx のコマンド群はシェルなのでこれらを
> 変更して -Dfile.encoding=UTF-8 を付けてもよいと思います。あとは私が
> 知っている範囲だと... _JAVA_OPTIONS に -Dfile.encoding=UTF-8 を
> 指定するということでしょうか。
>
> http://blogs.sun.com/katakai/entry/global_setting_for_java_apps
>
> 私の環境だとこれで両方とも JDK6 を使って UTF-8 で動かせました。
> ただ正式な方法ではないので自己責任でお願いしますね。
>
> 片貝
>
> 09.6.7 3:39 AM, S.Takahashi wrote:
>> 片貝さん、すぐにこんなに詳しいご回答して頂いてありがとうございます。
>> 反省しきりな高橋です。いろいろ試していて返信が遅くなってしまい申し訳あり
>> ません。
>>
>>> おそらく NetBeans で使っている JDK と JavaFX が使っている
>>> JDK が一致していないのだと思います。Mac では JDK5 と JDK6 では、
>>> デフォルトで使われるエンコーディングが異なっていますね。
>>
>> なるほど。JDK6はShift JISなんですね。それは知りませんでした...。
>>
>>> NetBeans メニューから「NetBeans について」で表示される
>>> ダイアログでは Java のバージョンはいくつになってますか?
>>
>> 1.6.0_13になってます。
>>
>>> 以下で調べるとバージョンはいくつになっているでしょう?
>>>
>>> /System/Library/Frameworks/JavaVM.framework/Home/bin/java -version
>>
>> $ /System/Library/Frameworks/JavaVM.framework/Home/bin/java -version
>> java version "1.5.0_19"
>>
>> です。
>>
>>> NetBeans が使っている JDK のバージョンと、このバージョンを
>>> そろえる必要があるようです。
>>
>> なるほど。そうだったんですか。ちなみにこの辺の情報ソースを教えて頂くこと
>> はできますでしょうか。不勉強で申し訳ありません。
>>
>>> これで直ったということは高橋さんの環境では、おそらく
>>> NetBeans を JDK6 で、/System/Library/Frameworks/JavaVM.framework/Home
>>> には
>>> JDK5 が入っているのではないでしょうかね。
>>
>> その通りでした。
>>
>>> -J-Dfile.encoding=UTF-8 を付ける代わりに NetBeans を JDK5 で
>>> 起動してみてください。NetBeans で JDK を指定するには以下のように、
>>>
>>> % netbeans --jdkhome
>>> /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
>>> (etc/netbeans.conf に書いておけます)
>>
>> はい、確かにこうすると文字化けしなくなります。
>> (netbeans.confのnetbeans_jdkhome=を1.5に変更)
>>
>>> 逆に JavaFX で JDK6 を使うようにするのであれば、環境変数 JAVA_HOME に
>>>
>>> export
>>> JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
>>>
>>>
>>> などと書いておけばいいと思います。
>>
>> JDK6を使いたいので、そうしようと思います。
>>
>> ですが、JAVA_HOMEを1.6に設定して、-J-Dfile.encoding=UTF-8を取ると、やは
>> り文字化けします。(ログインし直して環境変数を確認)
>>
>> で、いろいろ試して思ったのですが、JAVA_HOMEを1.6にしてnetbeans_jdkhomeを
>> 1.5にすると文字化けしない(=UTF-8)ことから、JavaFXもnetbeans_jdkhomeを見
>> てJDK5を使っているように思います。つまりJavaFXもnetbeans_jdkhomeを見てい
>> ると。とすると、最初に文字化けしていたのも、JavaFXがnetbeans_jdkhomeを見
>> てJDK6を向き、Shift JISになっていたからのように思われます。
>>
>> 一方、ターミナルで実行した場合は、JAVA_HOMEがなかったので、片貝さんご指
>> 摘のデフォルトディレクトリにあるJDK5を見ていてUTF-8だったけど、ターミナ
>> ルもUTF-8だったので文字化けしなかったと。
>>
>> それで、JDK6を使っていきたい私の場合は、netbeans_jdkhomeを1.6に、起動オ
>> プションに-J-Dfile.encoding=UTF-8を設定すれば良いのではないかと。それと
>> 時々ターミナルでも使いたいので、JAVA_HOMEも1.6にして、ターミナルをShift
>> JISにする、としたいと思います。いろいろ見ていたら、netbeans_jdkhome=$
>> {JAVA_HOME}とする方法(~/.MacOSX/environment.plistを作成)があるようなの
>> で、私のようにターミナルでも使う場合は、合わせておいたほうが良いかもしれ
>> ませんね。
>>
>> 本当はUTF-8で統一したいので、JDK6をUTF-8にする方法があれば一番ありがたい
>> のですが。
>>
>> 何か色々やり直したりしてちょっと混乱している部分もあるので、また間違って
>> たらすみません。
>>
>>> NetBeans から呼び出される JavaFX がどの JDK を使うかは本来は
>>> NetBeans 側でちゃんと設定してあげないといけないですね。これに
>>> 関しては後でバグレポートをあげておきます。ありがとうございました。
>>
>> 逆にもしかしたら誤解させてしまったかもしれず、大変申し訳ありません...。
>>
>>
>> 以上、よろしくお願いします。
>>
>>
>>
>> Masaki Katakai さんは書きました:
>>> こんばんは、高橋さん、
>>>
>>> おそらく NetBeans で使っている JDK と JavaFX が使っている
>>> JDK が一致していないのだと思います。Mac では JDK5 と JDK6 では、
>>> デフォルトで使われるエンコーディングが異なっていますね。
>>>
>>> NetBeans メニューから「NetBeans について」で表示される
>>> ダイアログでは Java のバージョンはいくつになってますか?
>>>
>>> JavaFX のコードをコンパイルする javafxpackager コマンドは
>>> 環境変数 JAVA_HOME が設定されてない場合はどうも以下にある
>>> java を使うようです。
>>>
>>> /System/Library/Frameworks/JavaVM.framework/Home
>>>
>>> 以下で調べるとバージョンはいくつになっているでしょう?
>>>
>>> /System/Library/Frameworks/JavaVM.framework/Home/bin/java -version
>>>
>>> NetBeans が使っている JDK のバージョンと、このバージョンを
>>> そろえる必要があるようです。
>>>
>>>  > 自己レスですみません、高橋です。
>>>  >
>>>  > -J-Dfile.encoding=UTF-8
>>>  >
>>>  > で治りました。
>>>
>>> これで直ったということは高橋さんの環境では、おそらく
>>> NetBeans を JDK6 で、/System/Library/Frameworks/JavaVM.framework/Home
>>> には
>>> JDK5 が入っているのではないでしょうかね。
>>>
>>> -J-Dfile.encoding=UTF-8 を付ける代わりに NetBeans を JDK5 で
>>> 起動してみてください。NetBeans で JDK を指定するには以下のように、
>>>
>>> % netbeans --jdkhome
>>> /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
>>> (etc/netbeans.conf に書いておけます)
>>>
>>> 逆に JavaFX で JDK6 を使うようにするのであれば、環境変数 JAVA_HOME に
>>>
>>> export
>>> JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
>>>
>>>
>>> などと書いておけばいいと思います。
>>>
>>> NetBeans から呼び出される JavaFX がどの JDK を使うかは本来は
>>> NetBeans 側でちゃんと設定してあげないといけないですね。これに
>>> 関しては後でバグレポートをあげておきます。ありがとうございました。
>>>
>>> 片貝
>>>
>>> 09.6.6 8:25 PM, S.Takahashi wrote:
>>>> 自己レスですみません、高橋です。
>>>>
>>>> -J-Dfile.encoding=UTF-8
>>>>
>>>> で治りました。
>>>>
>>>> Windowsのエンコーディングに関連して、
>>>>
>>>> "漢字コードが混在する場合"(5/26/2009)
>>>>
>>>> の返信で片貝さんがご回答されていたのですが、
>>>> MacOSという頭でスルーしてしまっていました。
>>>> また、コンソールで見て、
>>>>
>>>> env | grep LANG
>>>> LANG=ja_JP.UTF-8
>>>>
>>>> だったので余計UTF-8だから関係ないと思ってしまっていました。
>>>>
>>>> お騒がせして申し訳ありませんでした。
>>>>
>>>>
>>>>
>>>> S.Takahashi さんは書きました:
>>>>> みなさんこんにちは。高橋と申します。
>>>>>
>>>>> 出力ウィンドウのエラーメッセージの文字化けで悩んでいます。
>>>>>
>>>>> 環境は、
>>>>>
>>>>> netbeans6.5.1
>>>>> JavaFX(1.1.1&1.2)
>>>>> MacOSX 10.5.7
>>>>> java -versionは、1.6.0_13
>>>>>
>>>>> です。
>>>>>
>>>>> 大きな実害はないのですが、コンパイルエラーが出るとき、
>>>>>
>>>>> /Users/NetBeansProjects/LaGotadeCafe-4/src/lagotadecafe/Main.fx:251:
>>>>> 繧キ
>>>>> 繝ウ繝懊Ν繧定ヲ九▽縺代i繧後∪縺帙s縲�
>>>>> 繧キ繝ウ繝懊Ν: 繧ッ繝ゥ繧ケ bb
>>>>> 蝣エ謇�   : lagotadecafe.Main 縺ョ 繧ッ繝ゥ繧ケ
>>>>> class aa extends bb{
>>>>> 繧ィ繝ゥ繝シ 1 蛟�
>>>>> 繧ィ繝ゥ繝シ: javafxc 縺ョ螳溯。後↓螟ア謨励@縺セ縺励◆縲∫オゆコ�さ繝シ繝� 1
>>>>> /Users/NetBeansProjects/LaGotadeCafe-4/nbproject/build-impl.xml:143:
>>>>> exec returned: 255
>>>>> BUILD FAILED (total time: 1 second)
>>>>>
>>>>> みたいに出るので、ちょっとやな感じがしてまして、出来る事なら直した
>>>>> い と思
>>>>> いポストさせて頂きました。何かアドバイスを頂ければ有り難いです。
>>>>>
>>>>> インストールしたのは日本語版のフルインストール版で、これにプラグインで
>>>>> JavaFX1.1.1を追加。後から1.2が出たのでJavaFX1.2 SDKだけ後からインス
>>>>> トー
>>>>> ル。JavaFXは1.1.1でも1.2でも現象に変わりありません。
>>>>>
>>>>> --locale enで英語モードで起動しても同じような化け方をします。
>>>>>
>>>>> プロジェクトのプロパティのSourceのencodingはUTF-8です。
>>>>>
>>>>> コンソールから直接javafxcでコンパイルすると、
>>>>>
>>>>>> $ javafxc Main.fx
>>>>> Main.fx:251: シンボルを見つけられません。
>>>>> シンボル: クラス bb
>>>>> 場所    : lagotadecafe.Main の クラス
>>>>> class aa extends bb{
>>>>>                  ^
>>>>> エラー 1 個
>>>>>
>>>>> と出力されます。
>>>>> ※class bbが無い状態でコンパイルしたものです。
>>>>>
>>>>> よろしくお願い致します。
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
>>>>> For additional commands, e-mail: nbdiscuss_ja-help@...
>>>>>
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
>>>> For additional commands, e-mail: nbdiscuss_ja-help@...
>>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
>> For additional commands, e-mail: nbdiscuss_ja-help@...
>>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
For additional commands, e-mail: nbdiscuss_ja-help@...

 « Return to Thread: 出力ウィンドウの文字化け (netbeans6.5.1/MacOSX/JavaFX)