• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaコンソール出力でVT-100等のエスケープシーケンス文字はでき)

Javaコンソール出力でVT-100等のエスケープシーケンス文字はできるのか?

このQ&Aのポイント
  • JavaのSystem.out.print系ではVT-100等のエスケープシーケンス文字が使えないため、CUI諸設定画面の実現が難しい状況です。
  • お客様の要望でLinuxサーバーの諸設定画面をVT-100端末で操作したいとのことですが、javaでは不可能です。
  • GUIやブラウザでの設定も提案しましたが、サーバーの負荷を抑えるためにjavaでの実現を希望されています。

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

  • ベストアンサー
  • Lieserl
  • ベストアンサー率81% (31/38)
回答No.4

Windowsのコマンドプロンプトは、 デフォルトではANSI標準エスケープシーケンスに対応していないみたいですね。 <SystemRoot>\system32\config.ntファイルを編集して、 device=%SystemRoot%?system32?ANSI.SYS とANSI.SYSを読み込ませて、 CMD.EXEではなく、command.comで実行すればできるらしい? http://support.microsoft.com/kb/101875/ja http://support.microsoft.com/kb/100394/ja 下手な機械翻訳より、原文の方がましかも http://support.microsoft.com/kb/101875/en-us/ http://support.microsoft.com/kb/100394/en-us/

mintia007
質問者

お礼

ご回答ありがとう御座います。 そうだったんですか。linuxでは動作しているので特に問題はないのですが、 これでスッキリしました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Lieserl
  • ベストアンサー率81% (31/38)
回答No.3

Debian-lennyのGNOME-terminalではちゃんと赤くなるんだけどなぁ。 writeでだしてますよね? printだと実行環境の文字コードに変換しようとするから、 コード値変わっちゃうかもしれません。

mintia007
質問者

補足

あ、DebianでもRedHat、CentOS、Fedora、ubunts、KNOPPIX、Vineでもコンソールで 出来ました^^。 でも・・・ MS-DOSコマンドプロンプトで出ません(このMSって感じです><) 別に直接は関係ないんですが、気になったもので・・・。 ご指摘ありがとうございました。

すると、全ての回答が全文表示されます。
  • ontojava
  • ベストアンサー率61% (8/13)
回答No.2

こんにちは、 www.javaworld.com/javaworld/javaqa/2002-12/02-qa-1220-console.html このサイトによりますと次のように書けばよいのかもしれません System.out.print((char)27 + "[1C"); System.out.print((char)27 + "[5;31m"); System.out.print((char)27 + "[2J");

mintia007
質問者

補足

VT-100端末からは上手くいきました。linuxのコンソールからも上手くいってます。 一応、これでなんとかできそうなのですが、Windowsのコマンドプロンプトではダメでした。 Windows上のコマンドプロンプトでもできそうな感じなのですが。(printfでは上手くいってます) やっぱりMS-DOS系はある意味特殊なので、ダメなのでしょうか?

すると、全ての回答が全文表示されます。
  • Lieserl
  • ベストアンサー率81% (31/38)
回答No.1

Javaには\1bなんていうエスケープ文字は無いので byte[] esc = {0x1b}; System.out.write(esc); System.out.print("[1C"); ってやってみたらどうでしょう?

mintia007
質問者

補足

ご回答ありがとうございます。 やってみました。出来ませんでした><。 System#out#print系メソッドとC言語のprintf関数の仕組みが違うんですね。 JVMに起因するかなって思ってます。

すると、全ての回答が全文表示されます。

関連するQ&A