deprecatedなJavaクラスを探すスクリプト
指定ディレクトリ配下の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) ...