Как передать форматированный (\ n \ t) текст в командную строку Java - PullRequest
2 голосов
/ 10 марта 2009

Мне нужно передать отформатированную строку в командной строке, чтобы вводимый текст был представлен в формате JFrame:

Hello
The sun is shinning!

Как поместить '\ n' в командный файл Windows?

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

Я не могу изменить программу, она ожидает, что строка в качестве параметра командной строки будет показана в TextBox, и я хочу передать несколько строк.

Спасибо

Ответы [ 2 ]

2 голосов
/ 10 марта 2009

Не думаю, что это возможно.

Имейте в виду, что escape-последовательность "\n" распознается только компилятором Java и ничего не значит иначе.

Итак, у вас есть проблема с языком пакетных файлов Windows, и, насколько я знаю, в Windows невозможно встроить NL в параметры.

Однако то, что вы могли бы сделать, это решить проблему с "\n", упомянутой выше, и фактически заставить ваш код распознавать escape-последовательность:

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

Символ обратной косой черты в первой строке указан в кавычках дважды, поскольку вы действительно хотите сопоставить буквенный символ обратной косой черты.

В библиотеке Apache Commons также есть функция, которая сделает это:

import org.apache.commons.lang.*;
param = StringEscapeUtils.unescapeJava(param);
0 голосов
/ 10 марта 2009

Это немного уродливо, но вы должны быть в состоянии сделать это, используя echo и &&.
Попробуйте это:

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

Вкладка не нуждается в экранировании - вы можете поместить ее прямо в пакетный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...