cron(javaプログラム)からroot宛のmailで日本語文字化けの件で

解決済みの質問

cron(javaプログラム)からroot宛のmailで日本語文字化けの件で

cronでjavaを起動する場合、javaの中でSystem.out.println("あああ");
としたログがroot宛のmail(/var/spool/mail/root)で文字化け(日本語部分が???)
となってしまいます。
30 5 * * * root java -cp /home/abc/java/ test1 | nkf --jis を試しましたが
上手くいきません。

画面表示はUTF-8からEUCへ変更しましたが、sendmailもeucとかに設定が必要なので
しょか?教えて頂けれると助かります。

Redhat Linux EP4

投稿日時 - 2005-11-18 20:30:45

連想キーワード:

QNo.1787229

困ってます

質問者が選んだベストアンサー

> 問題なく「あああ」 と表示されますが、cronの中で
> 起動したjavaのログ内容の日本語部分のみ文字化け
> (???)となります。

なるほど、分かりました。

まず cron から実行されるプログラムに環境変数 LANG(=ja_JP.eucJP)を渡す必要があるのであれば、それを明示しなくてはなりません。単に java コマンドを実行するのではなく

  LANG=ja_JP.eucJP java -cp ....

のようにするか、以下のような shell script を適当な名前で作成・保存してそれを実行しましょう。

----- ここから -----
#!/bin/sh
export LANG=ja_JP.eucJP

java -cp /home/abc/java/ test1
----- ここまで -----
※ 実行権限をつける(chmod 755 ...)のをお忘れなく。

これで多分、環境変数 LANG に ja_JP.eucJP がセットされた状態で java が起動できることでしょう。

次にメールでの文字化け、というところですがメールをどういう風に読みたいのでしょうか?

> vi /var/spool/mail/root

と書かれていますが、普通、メールをエディタ(vi)では読まないですよ。きちんとするなら

 1. POP3 サーバを立ち上げてメールソフトで読む
 2. root 宛のメールを別のアカウント(外部の自分のアドレスなどが良いでしょう)に転送し、メールソフトで読む

のいずれかです。ただ、今までと同じ方法でよいのであれば、上記の LANG 設定で euc 出力にはなっていますので nkf を使わなければ大丈夫でしょう。

投稿日時 - 2005-11-19 14:42:56

お礼

回答ありがとうございます。
解決できました。有難うございました。

>> vi /var/spool/mail/root
>と書かれていますが、普通、メールをエディタ(vi)では読>まないですよ。きちんとするなら
このメール内容を出勤時にプリンターへ出力するために
こういう表記をしました。
色々参考になり有難うございました。

投稿日時 - 2005-11-19 15:25:41

ANo.2

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.1

コマンドラインから

 $ java -cp /home/abc/java/ test1 | nkf --jis

した場合は文字化けしないのでしょうか?

sendmail 側での設定は特に必要ないと思いますよ。

投稿日時 - 2005-11-19 10:17:40

お礼

回答ありがとうございます。

>sendmail 側での設定は特に必要ないと思いますよ
参考になりました。

Red Hat Enterprise Linux 4では,OSの日本語ロケール(文字コード)が
EUC から UTF-8 に変更 され、今までEUCで作ったソースや実行結果などの
日本語部分が文字化するためLANG="ja_JP.eucJP"として使用しております。

そのためnkfを使用せずに $ java -cp /home/abc/java/ test1とするだけで
問題なく「あああ」 と表示されますが、cronの中で起動したjavaのログ内容の
日本語部分のみ文字化け(???)となります。
vi /var/spool/mail/root

何かわかりましたら教えてください。

投稿日時 - 2005-11-19 13:02:29

あわせてチェックしたい
  • cronが動かない ...
  • Sendmail8.11.2について ...
  • redhat9でcfを使用したsendmail設定 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら