質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

6253閲覧

cygwinでJavaのコンパイル結果が文字化けしている

FumiakiNakao

総合スコア180

Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/05/27 06:15

Java初心者です

以下のような簡単なプログラムをうってcygwinでコンパイルしました

java

1public class Hensuu{ 2 public static void main(String[] args){ 3 int x; 4 x=4; 5 System.out.println(x); 6 } 7}

これをHensuu.javaというファイルで保存し、cygwinでコンパイルしたところ
以下のように文字化けが起こってしまいます

cygwinの状態

最初はエンコードの問題かと思い、javac -encoding utf-8 Hensuu.java としてみる等しましたが
一向に解決しません

どなたかご教授願います

環境はOSがwindows10

エディターはVisual Studio 2015 Code
コンパイラはCygwin
(どちらもエンコードはutf-8で設定しています)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

2つの問題が混在しているように思われます。

1)日本語が字化けする
javacが出力したメッセージが字化けしているのは、cygwinの設定の問題です。
質問の文章からcygwinの設定を推測する事は無理なので、"cygwin 日本語化"で検索して、対処方法を書いているページを探し、それを参考に対処してください。

2)Javaがコンパイルできない
文字化けしているメッセージは、

javac: ファイルが見つかりません: Hensuu.java

使い方: javac <options> <source files>

だろうと思われます。 原因は、~/work.java/Hensuu.java というファイルが存在しないからです。
Hensuu.javaというファイルがどこにあるか確認し、それをカレントディレクトリに移してから、javacコマンドを実行してください。

"-encoding utf-8"というオプションは、ソースファイル(.javaファイル)で用いられている文字コードを指定するもので、javacが出力するメッセージの文字コードとは関係ありません。

投稿2016/05/27 07:17

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FumiakiNakao

2016/05/27 20:39

回答ありがとうございます ご指摘のとおり、cygwinのhomeの中のwork.javaにHensuu.javaファイルがないというエラーでした Cドライブに別のwork.javaフォルダができており、その中に保存してしまっていたのが原因でした 文字化けに関しては上の回答者さまの回答を参考にさせていただきました
guest

0

ベストアンサー

javaはOracleJDKですかね。
そのつもりで返答します。

javaに限らず、Windowsのネイティブなコンソールプログラムはコマンドプロンプトを前提に作られているので、(日本語の)文字コードは基本的にcp932(ShiftJIS)で出力されます。それに対して、cygwinは全体的に文字コードをUTF-8で扱うようになっているので、どうしても文字化けが起きます。

ですので、cp932からutf-8に変換して出力します。

bash

1javac Hensuu.java 2>&1 | iconv -f cp932 -t utf-8

これで文字化けなく出力されると思います。

自分は、$HOME/.bashrcに以下の記述をして、「wincmd」コマンドを作っています。

bash

1function wincmd() 2{ 3 $* 2>&1 | iconv -f cp932 -t utf-8 4}

そして、Windowsのコンソールプログラムを実行する際には、wincmdを使います。

bash

1wincmd javac Hensuu.java

このようにしておくと、他のプログラムでも使えるので、便利です。

投稿2016/05/27 12:47

katsuko

総合スコア3469

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FumiakiNakao

2016/05/27 20:31

katsukoさんのおっしゃるやり方で文字化けが直りました .barshrcファイルをいじるのは初めてだったので大変勉強になりました ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問