2009-03-10 5 views
2

Je dois passer une chaîne formatée en une ligne de commande afin que le texte d'entrée est présenté au format dans un JFrame:Comment puis-je passer formated ( n t) du texte à une ligne de commande java

Hello 
The sun is shinning! 

Comment mettre un '\ n' dans un fichier de commandes Windows?

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

Je ne peux pas changer le programme, il attend une chaîne en tant que paramètre de ligne de commande à afficher dans une zone de texte, et je veux passer plusieurs lignes.

Merci

+0

Il peut être utile de nous dire ce que vous avez déjà essayé. –

+0

J'ai essayé: - java -cp. Test "Bonjour \ nLe soleil brille!" - java -cp. Test "Bonjour Le soleil brille!" - java -cp. Test <1.txt Je ne sais vraiment pas comment insérer un caractère \ n en tant que paramètre dans un fichier batch Windows. –

Répondre

2

Je ne pense pas que ce soit possible. Gardez à l'esprit que la séquence d'échappement "\n" n'est reconnue que par le compilateur Java et ne veut rien dire d'autre. Donc, ce que vous avez ici est un problème de fichier de commandes Windows, et pour autant que je sache, il n'y a aucun moyen de mettre un NL intégré dans les paramètres de Windows.

Ce que vous pourrait faire, cependant, est de résoudre le problème avec « \n » mentionné ci-dessus, et ont en fait votre code reconnaître la séquence d'échappement:

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

Le caractère anti-slash est cité deux fois dans le premier chaîne, puisque vous voulez réellement faire correspondre une barre oblique inverse littérale.

Il y a aussi une fonction dans la bibliothèque Apache Commons qui va faire ceci:

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

J'apprécie vos commentaires, et je suis entièrement d'accord avec vous si je pouvais changer le code. Le problème est que je ne peux pas changer le programme Java, j'ai besoin de passer une chaîne formatée dans la ligne de commande. –

+0

pour une raison quelconque, vous ne pouvez pas écrire un wrapper (en utilisant les fonctions ci-dessus) qui invoque alors le vrai programme avec les paramètres non échappés? – Alnitak

0

Il est un peu laid, mais vous devriez être en mesure de le faire en utilisant echo et &&.
Essayez ceci:

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

Un onglet n'a pas besoin d'échapper - vous pouvez le mettre directement dans votre fichier de commandes.

Questions connexes