- - PR -
全角ユーザ名とJava Plugin 1.3.1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-10-05 14:36
こんにちは、
Windows2000やXPで、Java Plugin 1.3.1を使っています。 アプレットを起動するときに、JavaConsoleに「NullPointerException」がたくさん出ます。原因は、全角文字でユーザ名を設定していることにあるようで、次のメッセージが表示されます: ユーザのホームディレクトリ:C:\Documents And Settings\?N??? ユーザディレクトリが正しく見つからないので、「NullPointerException」と他の例外メッセージがだんだん増えてしまいます: ---------------------------------------------------- Java(TM) Plug-in: バージョン 1.3.1 使用中の JRE のバージョン 1.3.1 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Documents and Settings\?N???Xjava.lang.NullPointerException java.lang.NullPointerExceptionプロキシの設定: java.lang.NullPointerExceptionプロキシなしjava.lang.NullPointerException java.lang.NullPointerException java.lang.NullPointerException java.lang.NullPointerExceptionjava.security.PrivilegedActionException: java.lang.NullPointerExceptionjava.io.FileNotFoundException: C:\Documents and Settings\?N???X\Local Settings\Temporary Internet Files\Content.IE5\6LEVG3EX\WebPresent[1].jar (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。) ---------------------------------------------------- このようなエラーを解消するには、どのようにすればいいのでしょうか? よろしくお願いします。 |
|
投稿日時: 2002-10-08 01:29
「原因は、全角文字で…」と書かれていますが、原因がはっきりしてないのではないでしょうか。
ユーザ名が全角文字だと、なぜ NullPointerException が発生するかを説明できなければ解決しないと思われます。 例外が発生したという事実だけでなく、ソースコードのどの行のどの処理で発生したのか、デバッガや printStackTrace を使用して1個1個確かめたほうが良いと思われます。 |
|
投稿日時: 2002-10-08 11:39
>ユーザ名が全角文字だと、なぜ NullPointerException が発生するかを説明できなければ解
決しないと思われます。 そうですね。でも、あのNullPointerExceptionは全角文字のユーザ名だけで発生しまいます。 >例外が発生したという事実だけでなく、ソースコードのどの行のどの処理で発生したのか、デバッガや printStackTrace を使用して1個1個確かめたほうが良いと思われます。 でも、一番最初のNullPointerExceptionは、ユーザのホームディレクトリとプロキシの設定情報の間に発生します。この場所は、Pluginの出力メッセージです。私のソースに関係がないと思います。 printStackTraceをあっちこっち追加しても、この問題を解けないと思います。 それに、どうしてユーザ名だけが正しく表示されません?他の日本語メッセージには、問題があありません。 |
|
投稿日時: 2002-10-08 11:44
>>ユーザ名が全角文字だと、なぜ NullPointerException が発生するかを説明
>>できなければ解決しないと思われます。 >そうですね。でも、あのNullPointerExceptionは全角文字のユーザ名だけで >発生しまいます。 Windowsのファイルシステムを信用しないように. MSの設計は行き当たりばったりで,その場凌ぎの部分が多すぎます. #だいたい,未だ拡張子3文字が原則で,大文字と小文字も満足に #区別できないレガシーシステムなんだから.... |
|
投稿日時: 2002-10-09 02:04
Java Plugin 1.3.1が、パスに2バイトコードの文字が含まれている場合に、適切な文字列操作をしていないために、文字化けが発生して、誤ったパスでファイルにアクセスしようとしているためです。マイクロソフトの不具合というよりも、パスを適切に扱っていないSunの問題です。
これだから、アルファベット文字圏の人間が作った国際対応アプリケーションは使い勝手が悪いんだよな。アルファベット以外の文字でかかれているファイル名やディレクトリ名、ユーザ名のことなんか、まったく考えていないか、まともにテストしていないように見受けられます。 昔から言われていることですが、アルファベット以外の文字で、ファイル名やディレクトリ名、ユーザ名などの識別子を設定するとろくでもないことが起こるということです。 もっとも、マイクロソフト自身も、アルファベット以外の文字のユーザ名であると、MS-Officeのインストールに失敗するという不具合を出したことがあります。 |
|
投稿日時: 2002-10-09 02:32
>#だいたい,未だ拡張子3文字が原則で,大文字と小文字も満足に
>#区別できないレガシーシステムなんだから.... 区別できないのではなく、互換性のために区別しないのです。ファイル名の大文字と小文字を区別するのはUNIX系のシステムがほとんどです。非UNIX系のシステムや一部の古いUNIXでは、大文字と小文字区別するどころか、大文字だけしか受け付けないといったシステムの方がむしろ多いようです。どちらかというと、大文字と小文字を区別するUNIX系のシステムの方が特殊な部類になります。 |
|
投稿日時: 2002-10-09 19:35
> Java Plugin 1.3.1が、パスに2バイトコードの文字が含まれている場合に、
>適切な文字列操作をしていないために、文字化けが発生して、 この「適切な文字列操作」ってのが,その場しのぎの対応というものでは? WindowsがOSレベルで統一的に対応できていれば,本来不要なものです. >互換性のために区別しないのです。 だからレガシーシステムだと. どういう理由をつけようと,対応できていないのは事実ですから. >ファイル名の大文字と小文字を区別するのはUNIX系の >システムがほとんどです。 ...... 現在世の中に存在するOSでUNIXの影響を受けてないOSなんて ほとんどないのだが.... それこそMS-DOSでさえも. 一体なにをもって非UNIX系OSと言ってるんでしょう? |
|
投稿日時: 2002-10-09 23:42
>> Java Plugin 1.3.1が、パスに2バイトコードの文字が含まれている場合に、
>>適切な文字列操作をしていないために、文字化けが発生して、 >この「適切な文字列操作」ってのが,その場しのぎの対応というものでは? >WindowsがOSレベルで統一的に対応できていれば,本来不要なものです. OSに原因があるのではなく、アプリケーションが自分でファイルのパスを表現している文字列を文字化けで変化させてしまって、別物にしているために起こっていることです。 OSから取得したパスが、ABCDだったとして、これをアプリケーションが自身の内部処理でAB'CDやABとかに文字化けさせてしまったら、OSは、アプリケーションからAB'CDやABとかのパスでアクセスを依頼されます。そんなパスが実在しなければ、エラーになります。2バイトコードを含む文字列の処理は、文字のコード体系をアプリケーション側で意識して適切に処理をしてやらないと、使い物になりません。 2バイトコードのコード体系にまつわる問題というのは、10年経っても、20年経っても、同じことを繰り返している、OSの垣根を越えた古くて新しい問題です。 [ メッセージ編集済み 編集者: MyTime 編集日時 2002-10-09 23:51 ] |
