【Processing】xorとウィンドウ非表示

3846ctfのTutorialでxorを計算する問題が出て、その解法のSourceを3846先輩が書いて下さり、それを僕がちょっと修正したものです

http://kkrnt.arckty.org/xor/processing/xor.zip

void init()
{
  PrintWriter output;
  String [] file = (loadStrings("string.txt"));
  String [] key_file = (loadStrings("key.txt"));
  char[] chars = new String(file[0]).toCharArray();
  char[] keys = new String(key_file[0]).toCharArray();
  String o_file = file[0] + ".txt";
  output = createWriter(o_file); 

  for (int i=0; i<chars.length; i++) {
    chars[i] = (char)(chars[i]^keys[0]);
  }
  output.println(new String(chars));

  for (int i=0; i<chars.length; i++) {
    chars[i] = (char)(chars[i]^keys[0]);
  }
  output.println(new String(chars));

  output.flush();
  output.close();
  exit();
}


その際に如何にウィンドウを非表示でプログラムを実行するかという問題にブチ当たりまして、その結論

void init()
{
  exit();
}


init()はインスタンス化された後に最初に実行されるメソッドのようで、setup()はprocessing用ですが、init()はJavaで利用されるものです

init()単体で実行するとヌルポを吐き、exit()単体で実行すると一瞬だけウィンドウが表示されるので、両方合わせて使うことがポイント

exit()の前に色々処理を入れることで、ウィンドウを完全に非表示でプログラムを実行出来ます