0
私はKali Linuxでconsoleコマンドを実行しようとしていましたが、出力をJTextPane
にパイプすると出力がちょっと変わってしまいます。私がNetbeanの出力コンソールでそれを表示すると、それは問題ありませんでした。私が実行しようとしているJTextPaneは奇妙なコンソール文字を出力します
コマンド:wifite -e Experiment -c 1
コード:
public cracker(JTextPane aOutputPane)
{
super();
mOutputPane = aOutputPane;
}
@Override
protected String doInBackground() throws Exception
{
Process p = null;
try
{
String Channel=CNinput.getText();
String WName=WN.getText();
p = Runtime.getRuntime().exec("wifite -e "+WName+" -c "+Channel);
}
catch (IOException ex)
{
Logger.getLogger(home.class.getName()).log(Level.SEVERE, null, ex);
}
BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
String output = "";
try
{
while ((line = buf.readLine()) != null)
{
publish(line);
output += line + "\n";
}
}
cat
ch (IOException ex)
{
Logger.getLogger(home.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
p.waitFor();
}
catch (InterruptedException ex)
{
Logger.getLogger(home.class.getName()).log(Level.SEVERE, null, ex);
}
return output;
}
@Override
protected void process(java.util.List<String> aChunks)
{
mOutputPane.setText(null);
final String intermediateOutput = aChunks.stream().collect(Collectors.joining("\n"));
final String existingText = mOutputPane.getText();
final String newText = existingText + "\n" + intermediateOutput;
mOutputPane.setText(newText);
}
}
あなたが言ったことでグーグルをした後で、私はそれが有用であることを発見しました、特にJansiは、それを.setTextに実装することは可能ですか?私は、System.out上でAnsiConsole.systemInstall();への限定された参照しか見つけられません。 –
「Jansi」がこの使用法を直接サポートしているかどうかはわかりませんが、構文解析の方法を検討する価値はあるかもしれません。この文脈では、私は少数の 'SimpleAttributeSet'インスタンス以上を必要としませんでした。 – trashgod
JtextpanelでSimpleAttributeSetを使用するにはどうすればいいですか?つまり、コンソールパイプ出力でjtextpanelにフォーマットされたテキストをパイプする方法は? –