-1

クロスプラットフォームである実行中のjarのファイル名を知る方法はありますか?

パスを取得したり、ディレクトリ内のすべてのjarの名前を取得したり、OSのコマンドプロンプト/シェルにコマンドを渡して検索したりできます。これを行うためのより良い方法はありますか?

4

1 に答える 1

1

ここを見てください:http://mindprod.com/jgloss/wherejars.html

public class Where
   {
   /**
    * main
    * @param args name of fully qualified class to find, using dots, but no dot class.
    * e.g. java.exe Where javax.mail.internet.MimeMessage
     */
   public static void main ( String[] args )
      {
      try
         {
         String qualifiedClassName = args[0];
         Class qc = Class.forName( qualifiedClassName );
         CodeSource source = qc.getProtectionDomain().getCodeSource();
         if ( source != null )
            {
            URL location = source.getLocation();
            System.out.println ( qualifiedClassName + " : " + location );
            }
         else
            {
            System.out.println ( qualifiedClassName + " : " + "unknown source, likely rt.jar" );
            }
         }
      catch ( Exception e )
         {
         System.err.println( "Unable to locate class on command line." );
         e.printStackTrace();
         }
      }
   }  
于 2012-12-10T20:38:14.993 に答える