読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

deprecatedなJavaクラスを探すスクリプト

Ruby

指定ディレクトリ配下のjarファイルから、deprecatedなJavaクラスを探すスクリプトを書きました。javaclassを使ってます。

#!/usr/bin/ruby

# 引数で指定したディレクトリ配下のjarからdeprecatedなJavaクラスを探す
# 
# 使い方: ./find_deprecated.rb <探索するディレクトリ>

require 'rubygems'
require 'javaclass'
require 'find'

Find.find( ARGV[0]) { |f|
  next unless f =~ /.*\.jar$/
  JavaClass::ZipUtils.each_class( f ) {|cl|
    puts "#{cl.name} (#{f})" if cl.deprecated?
  }
}

手近にあった、axis1.4のアーカイブを対象に実行。

$ ./find_deprecated.rb ./axis-1_4

実行結果です。(ほんとはもっとある)

javax.xml.soap.SOAPElementFactory (./axis-1_4/webapps/axis/WEB-INF/lib/saaj.jar)
org.apache.commons.logging.impl.Log4JCategoryLog (./axis-1_4/webapps/axis/WEB-INF/lib/commons-logging-1.0.4.jar)
org.apache.commons.logging.LogSource (./axis-1_4/webapps/axis/WEB-INF/lib/commons-logging-1.0.4.jar)
org.apache.commons.logging.impl.Log4jFactory (./axis-1_4/webapps/axis/WEB-INF/lib/commons-logging-1.0.4.jar)
org.apache.axis.encoding.DefaultSOAP12TypeMappingImpl (./axis-1_4/webapps/axis/WEB-INF/lib/axis.jar)
org.apache.axis.configuration.ServletEngineConfigurationFactory (./axis-1_4/webapps/axis/WEB-INF/lib/axis.jar)
org.apache.axis.configuration.DefaultEngineConfigurationFactory (./axis-1_4/webapps/axis/WEB-INF/lib/axis.jar)
org.apache.axis.enum.Style (./axis-1_4/webapps/axis/WEB-INF/lib/axis.jar)
org.apache.axis.enum.Use (./axis-1_4/webapps/axis/WEB-INF/lib/axis.jar)
org.apache.axis.enum.Scope (./axis-1_4/webapps/axis/WEB-INF/lib/axis.jar)
org.apache.xml.utils.DOMOrder (./axis-1_4/test/lib/xalan-2.6.0.jar)
...