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

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

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

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

Q&A

解決済

2回答

1145閲覧

Atomのscriptで、javaのソースファイルコンパイル時の文字化けについて

karakorum

総合スコア20

Java

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

0グッド

0クリップ

投稿2020/03/07 07:16

*プログラム初心者のため、表現等に誤りがあるかもしれません。すいません。

前提・実現したいこと

●環境
・java version 13.0.2
・Atom 1.44.0
・script 3.25.0
・jdk 13.0.2
●OS :windows10
*テキストエディタはAtomで、コンパイル、実行等もAtomで行っています。

##やりたいこと
Atomでjavaのソースファイルをコンパイルしたときに
エラーが文字化けが起こらないようにしたいです。

該当のソースコード

適当に作ったjavaのソースファイルです。
5行目にエラーが出ます。

import static java.lang.System.out; public class Sample{ public static void main(String[]args){ int a=; out.println(a); } }

コンパイルした結果です。
エラーメッセージが文字化けしてしまいます。

> javac Sample.java Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 Sample.java:5: 繧ィ繝ゥ繝シ: 蠑上・髢句ァ九′荳肴ュ」縺ァ縺・ int a=; ^ 繧ィ繝ゥ繝シ1蛟・

試したこと

①AtomのFile -> Init Script... から init.coffeeに

process.env.JAVA_TOOL_OPTIONS = '-Dfile.encoding=UTF-8'

を追加しました。
その後、実行時の文字化けは一切なくなりました。
しかし、コンパイル時のエラー文字化けは消えませんでした。

②下記のようにコンパイルしました。

javac -encoding UTF-8 Sample.java

結果、変わりませんでした。

③文字コードをJapanese(Shift JIS)に変更後、ファイルを保存し、
コマンドプロンプトでコンパイルしました。

Sample.java:5: エラー: 式の開始が不正です int a=; ^ エラー1個

結果は、上記のとおりです。
*文字コードは変更しなくても、普通にコンパイルできました。

④teratail、ネットのまとめサイト等を調べ、原因を探りました。
しかし、解決方法は今のところ見つかっていません。

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

自己解決

Atomのscriptに
chcp 65001
と文字コードの変換をしたら、文字化けが無くなりました。

投稿2020/03/20 04:17

karakorum

総合スコア20

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

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

0

int a=;

そもそもこの文がおかしいためにエラーが出てます。
ちゃんと修正しましょう

投稿2020/03/07 07:49

y_waiwai

総合スコア88042

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

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

karakorum

2020/03/07 08:32

回答ありがとうございます。 もちろん、その文がおかしいためエラーが起こることは分かっています。 int a=1; など、適当な数字を代入すれば、エラーも消えます。 しかし、もっと複雑なソースコードをコンパイルした時にエラーが発生し、そのエラーメッセージが文字化けしていたらとても不便なので、文字化けの理由を知りたいと思い、質問させてもらいました。
y_waiwai

2020/03/07 08:40

Atomは使ってないんで、確かなことは言えないですが、、 Windowsのコマンドプロンプトは、デフォルトでShiftJISとなってます。 ここに、UTF8で表示させようとすると文字化けすることとなります コマンドプロンプトをUTF8にする方法が検索すると出てきますんで、そこらへん実行してみては。
karakorum

2020/03/07 08:47

そちらも調べてみようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問