
javaコンソール出力でVT-100等のエスケープシーケンス文字はできないのでしょうか?
例えば、
System.out.print("\1b[1C"); でカーソルを次にとか、
System.out.print("\1b[5;31m"); で出力文字を赤色で点滅させるとか。
C言語のprintfでは出来るのですが、javaのSystem.out.print系ではできませんでした。
当方、現在CUIの諸設定画面を作っており、困っております。Linuxサーバーにある諸設定画面を
LANで繋がれたクライアント(VT-100端末)で行うというお客様からのご要望で、なんとか
したいと思っております。
GUI、ブラウザで設定はどうですか?と提案したのですが、なるべくサーバーの負荷を抑えたい
ので、不要なサービス等を入れたくないとの事です。
(ちなみにDBサーバーの諸設定です。処理が集中するとHDが回りっぱなしで負荷がすごい)
ちなみにlinuxのランレベルも当然3(CUI)です。
できればjavaで実現したいと考えたのですが、やっぱりC言語で書かないとダメかもです。
ご回答、宜しくお願い致します。
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/
ご回答ありがとう御座います。
そうだったんですか。linuxでは動作しているので特に問題はないのですが、
これでスッキリしました。
No.3
- 回答日時:
Debian-lennyのGNOME-terminalではちゃんと赤くなるんだけどなぁ。
writeでだしてますよね?
printだと実行環境の文字コードに変換しようとするから、
コード値変わっちゃうかもしれません。
この回答への補足
あ、DebianでもRedHat、CentOS、Fedora、ubunts、KNOPPIX、Vineでもコンソールで
出来ました^^。
でも・・・
MS-DOSコマンドプロンプトで出ません(このMSって感じです><)
別に直接は関係ないんですが、気になったもので・・・。
ご指摘ありがとうございました。

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");
この回答への補足
VT-100端末からは上手くいきました。linuxのコンソールからも上手くいってます。
一応、これでなんとかできそうなのですが、Windowsのコマンドプロンプトではダメでした。
Windows上のコマンドプロンプトでもできそうな感じなのですが。(printfでは上手くいってます)
やっぱりMS-DOS系はある意味特殊なので、ダメなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Log4jで機能毎に別ファイルへ出...
-
System.err. printlnとSystem.o...
-
JavaScriptの変数をjavaのメソ...
-
Javaで改行などが出来ないのです。
-
System.out.printlnの出力先
-
Tomcatが無応答となる現象が起...
-
getName()で取得したファイル名...
-
1~100までの数字を表示したい
-
Eclipseのコンソールを常に表示...
-
サーブレットでFileWriterクラ...
-
flush()とclose()について
-
javaについて
-
java for文、if文を使っての三角形
-
オブジェクトの中のプロパティ...
-
JSPやサーブレットでSystem.out...
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
ORA-01858: 数値を指定する箇所...
-
ループ処理の際、最後だけ","を...
-
変数を動的に作るには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
flush()とclose()について
-
Javaで改行などが出来ないのです。
-
一定のスペースを空けて端を揃...
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
-
System.out.printlnの出力先
-
system.out.printが出力されない
-
System.out.printlnの意味がよ...
-
1~100までの数字を表示したい
-
Tomcatが無応答となる現象が起...
-
InputStreamはreadが1回しかで...
-
switch分が機能しません。
-
tomcatのstdout.logを停止したい。
-
OpenSSL関数エラーについて
-
JAVAのServletで、画像表示につ...
-
Eclipseのコンソールを常に表示...
-
テキストエリアで改行する
-
Log4Jではログを改行できない?
-
ファイル書き込みに関して
おすすめ情報