@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

コマンドプロンプトからのコンパイルで文字化け回避方法を教えてください

投稿者投稿内容
キキ
常連さん
会議室デビュー日: 2005/08/31
投稿数: 29
投稿日時: 2009-03-13 14:03
■ Java環境 ■
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

■ コマンドプロンプトの環境 ■
既定のコードページ:932 (ANSI/OEM 日本語 Shift-JIS)
フォント:MSゴシック

■ ソース ■
public class HelloWorld {
public static void main(String[] args) {
System.out.println("こんにちは");
}
}

■ コマンドプロンプトからの命令 ■
>javac -encoding sjis HelloWorld.java
>java HelloWorld

■ 結果 ■
縺薙s縺ォ縺。縺ッ


結果を文字化けさせずに表示したいです。
よろしくお願いします。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-03-13 14:15
ソースファイルはShift-JISですか?
キキ
常連さん
会議室デビュー日: 2005/08/31
投稿数: 29
投稿日時: 2009-03-13 15:42
>ソースファイルはShift-JISですか?
はい。サクラエディタで作ったShift-JISです。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-03-13 16:32
そうですか・・・
さっきjdk1.6.0_12で以下で試した限りでは問題なく出たんですが・・・。

コード:
C:\Program Files\Java\jdk1.6.0_12\bin>javac -version
javac 1.6.0_12

C:\Program Files\Java\jdk1.6.0_12\bin>copy con: HelloWorld.java
public class HelloWorld{
public static void main(String[] args){
System.out.println("こんにちは");
}
}
^Z
        1 個のファイルをコピーしました。

C:\Program Files\Java\jdk1.6.0_12\bin>javac -encoding sjis HelloWorld.java

C:\Program Files\Java\jdk1.6.0_12\bin>java HelloWorld
こんにちは

C:\Program Files\Java\jdk1.6.0_12\bin>



^ZはCtrl+Zです

やんち
常連さん
会議室デビュー日: 2008/10/24
投稿数: 32
投稿日時: 2009-03-13 17:37
Sun以外から提供されているJVMや、クラスライブラリを使用すると、
同じような文字化けが起こる事がある気がします。

CLASSPATHに余計なものが登録されていないか、
PATH設定に、他のjavaコマンドのパスが登録されていないか、
確認するとよいかもしれません。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2009-03-13 18:05
javacになぜか-encodingを渡してるとか。
キキ
常連さん
会議室デビュー日: 2005/08/31
投稿数: 29
投稿日時: 2009-03-13 18:39
>CLASSPATHに余計なものが登録されていないか、
>PATH設定に、他のjavaコマンドのパスが登録されていないか、
>確認するとよいかもしれません。
■ CLASSPATHの中身 ■
.;C:\Tomcat 4.1.27\common\lib\servlet.jar;%JAVA_HOME%\bin

です。Tomcatが設定してあるのがマズイんですかねぇ・・・。

>javacになぜか-encodingを渡してるとか。
????
文字化けということで、エンコード設定を明確にしてjavacしたのですが・・・。
ちなみにエンコード引数なしでも文字化けは起こります。
やんち
常連さん
会議室デビュー日: 2008/10/24
投稿数: 32
投稿日時: 2009-03-13 23:02
コマンドプロンプトから、
>type HelloWorld.java
などして見るとどうなるでしょう。

type は、ファイルの中身をコマンドプロンプトに表示するコマンドです。

スキルアップ/キャリアアップ(JOB@IT)