でこんぱいる

まずはjadを使ってclassファイルをjavaファイルに

※最初の1行でログファイルを初期化している

cd dummy > log.txt 2> NUL
for /r %i in (*.class) do jad -o -s .java -r "%i" >> log.txt 2>&1

これで、classファイルと同じ場所にjavaファイルが作成されるハズ。その際、何かエラーがあったかどうかlog.txtを見ておく。

埋め込まれているマルチバイト文字列が「\uXXXX」なので日本語に変換

以下のrubyスクリプトで、srcフォルダ以下にあるjavaファイルを変換して、dstフォルダの下に保存する

require "kconv"
require 'fileutils'

SRC = "src"
DST = "dst"

Dir.glob("#{SRC}/**/*.java").each{|f|
  puts f
  contents = ""

  open(f){|fp|
    contents = fp.read.gsub(/\\u(\w{4})/){
      [($1.hex)].pack("U*").tosjis
    }
  }

  dst = f.sub(SRC,DST)
  dir = File.dirname(dst)
  FileUtils.mkdir_p(dir) unless File.exist?(dir)

  open(dst, "w"){|fp|
    fp.write contents
  }
}

puts "finish"