- - PR -
1.3→1.4へアップグレードしたらコンパイル通らなくなった
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-08-19 18:44
JAVAのバージョンを1.3.1から1.4.1にバージョンアップしたのですが
1.3.1ではできていたコンパイルが1.4.1ではできなくなってしまいました。 コンパイルエラーになっている箇所は (黒の旧体字)や潤i年号、昭和を1文字に縮めたもの) のところです。 文字リテラルが閉じられていません。 if ( ( '?' <= buf[i] && buf[i] <= '?' ) ^ というエラーが出てきています。 javacのオプションで -encoding MS932などに指定すると コンパイルエラーなしで通るようにはなるのですが なぜ1.3.1で通っていたコンパイルが通らなくなってしまったのか 疑問です。 どなたか、ご存知の方いらっしゃいましたら ご教授下さい。よろしくお願いします。 | ||||
|
投稿日時: 2003-08-19 18:52
http://www.atmarkit.co.jp/fjava/rensai2/eclipse03/eclipse03.html
の「コラム:Windows-31Jの使用」の部分が参考になるかもしれません。 JDK 1.4.1 とそれ以前とでは "Shift_JIS" の扱いが変わっています。 (自信なしですが) | ||||
|
投稿日時: 2003-08-19 19:14
こんにちは。米山@クロノスです。
以下のサイトは参考になりませんか? http://www.ingrid.org/java/i18n/encoding/shift_jis.html | ||||
|
投稿日時: 2003-08-19 19:20
yuzyさん、早速のレスありがとうございます。
先ほどの追加事項ですが System.getProperty(file.encoding)を実行するとSJIS になっているので、1.3.1ではSJISでエンコーディング されているのではないかと思います。 なので、1.4.1でも javac -encoding SJIS ○○.java で実行してみたのですがコンパイルエラーになってしまいました。 特にShift_JISと指定しているところはないので Shift_JISの扱いの違いではないと思います。。。 言葉足りずですみませんでした。 | ||||
|
投稿日時: 2003-08-20 00:56
1.3.1でも javac -encoding SJIS ○○.java
としたら、コンパイルできるでしょうか? (というか、これを試していない理由は何でしょう?試したけど、ここの掲示板には書いていなかったということでしょうか?) ちなみに私の環境は、Windows2000 SP4(java version "1.3.1_09")ですが、 file.encoding=MS932 となっております。 コンパイルが失敗する環境は、どういった環境なのでしょうか? | ||||
|
投稿日時: 2003-08-20 10:07
米山@クロノスさん、ふうたさん、
レスありがとうございます。 現在の開発環境ですが 使っているマシンはWindows XP PROですが リモートログインしてUNIXサーバでJAVAの 開発を行っています。 リモートログイン時にLANG=jp_JP.SJISに 環境変数を設定しています。 環境変数にCLASSPATHは設定してません。 このUNIXサーバにJAVAの1.3.1と1.4.1が同居して いるので、コンパイルするときは /jdk131/bin/javac -encoding SJIS ○○ /jdk141/bin/javac -encoding SJIS ○○ とパスを指定してコンパイルを行っています。 コンパイルで試したのは /jdk131/bin/javac ○○ → コンパイルOK /jdk131/bin/javac -encoding SJIS ○○ → コンパイルOK /jdk131/bin/javac -encoding MS932 ○○ → コンパイルOK /jdk141/bin/javac ○○ → コンパイルエラー /jdk141/bin/javac -encoding SJIS ○○ → コンパイルエラー /jdk141/bin/javac -encoding MS932 ○○ → コンパイルOK です。 何かおかしいと思われるところありましたら ご指摘下さい。 | ||||
|
投稿日時: 2003-08-20 11:36
そこまでわかれば、まさしく、yuzyさんや米山@クロノスさんがあげておられる
リンクの内容通りの問題だと思われるのですが? どういった点がぴろさんは、引っかかっておられるのでしょう? | ||||
|
投稿日時: 2003-08-20 12:04
System.out.println("" + ""); byte[] bytes = ("" + "").getBytes(); for(int i = 0 ; i < bytes.length ; i++){ System.out.print(Integer.toHexString(bytes[i] & 0xFF).toUpperCase() + ","); } System.out.println(); のようなコードを -encoding SJIS でコンパイルして結果を出力して見ましたが、
| ||||
