2009-03-10 2 views
2

にテキストをフォーマットされたパス(\ n個の\ tの)んWindowsのバッチファイルに '\ n'を挿入するにはどうすればいいですか?は、どのように私は、入力テキストがJFrameのでフォーマット提示されるように、コマンドラインでフォーマットされた文字列を渡す必要があるjavaコマンドライン

java -cp . Test "Hello\nThe sun is shinning!" 

私はプログラムを変更することはできません、コマンドラインパラメータがテキストボックスに表示されるように、文字列を期待している、と私は複数の行を渡したいです。

ありがとうございました

+0

あなたが既に試したことを教えてください。 –

+0

私は試しました: - java -cp。テスト "こんにちは\ n太陽は輝いています!" - java -cp。テスト "こんにちは 太陽は輝いています!" - java -cp。 Test <1.txt Windowsのバッチファイルに\ n文字をパラメータとして挿入する方法は本当に分かりません。 –

答えて

2

私は考えられません。

エスケープシーケンス「\n」は、Javaコンパイラによってのみ認識されるため、特に意味はありません。

ここであなたが持っているのは、Windowsバッチファイルの言語問題です。私が知る限り、Windowsのパラメータに埋め込みNLを入れる方法はありません。

エスケープシーケンスを認識何 、しかし、前述した「 \n」の問題を解決して、実際にあなたのコードを持っていない可能性が

:バックスラッシュ文字が最初に二回引用されている

param = param.replaceAll("\\n", "\n"); 

実際にリテラルのバックスラッシュ文字と一致させたいからです。

もこれをやるのApache Commonsのライブラリ内の関数があります:

import org.apache.commons.lang.*; 
param = StringEscapeUtils.unescapeJava(param); 
+0

あなたのコメントをいただきありがとうございます。コードを変更することができれば、私は全く同意します。問題は、私はJavaプログラムを変更できない、私はコマンドラインでフォーマットされた文字列を渡す必要があるということです。 –

+0

エスケープされていないパラメータで実際のプログラムを呼び出すラッパー(上記の関数を使用)を書くことができない何らかの理由はありますか? – Alnitak

0

それは少し醜いですが、あなたはecho&&を使用してそれを行うことができるはずです。
はこれを試してみてください:

java -cp . Test (echo Hello&&echo The sun is shining!) 

タブは、エスケープを必要としない - あなたはあなたのバッチファイルに直接それを置くことができます。

関連する問題