< prev index next >

src/jdk.jstatd/share/classes/sun/tools/jstatd/Jstatd.java

Print this page
rev 48074 : 8189102: All tools should support -?, -h and --help
Reviewed-by: kvn, jjg, weijun, alanb, rfield, ksrini
   1 /*
   2  * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


  30 import java.rmi.registry.Registry;
  31 import java.rmi.registry.LocateRegistry;
  32 import java.net.MalformedURLException;
  33 import sun.jvmstat.monitor.remote.*;
  34 
  35 /**
  36  * Application providing remote access to the jvmstat instrumentation
  37  * exported by local Java Virtual Machine processes. Remote access is
  38  * provided through an RMI interface.
  39  *
  40  * @author Brian Doherty
  41  * @since 1.5
  42  */
  43 public class Jstatd {
  44 
  45     private static Registry registry;
  46     private static int port = -1;
  47     private static boolean startRegistry = true;
  48 
  49     private static void printUsage() {
  50         System.err.println("usage: jstatd [-nr] [-p port] [-n rminame]");

  51     }
  52 
  53     static void bind(String name, RemoteHostImpl remoteHost)
  54                 throws RemoteException, MalformedURLException, Exception {
  55 
  56         try {
  57             Naming.rebind(name, remoteHost);
  58         } catch (java.rmi.ConnectException e) {
  59             /*
  60              * either the registry is not running or we cannot contact it.
  61              * start an internal registry if requested.
  62              */
  63             if (startRegistry && registry == null) {
  64                 int localport = (port < 0) ? Registry.REGISTRY_PORT : port;
  65                 registry = LocateRegistry.createRegistry(localport);
  66                 bind(name, remoteHost);
  67             } else {
  68                 throw e;
  69             }
  70         }
  71     }
  72 
  73     @SuppressWarnings("deprecation") // Use of RMISecurityManager
  74     public static void main(String[] args) {
  75         String rminame = null;
  76         int argc = 0;
  77 
  78         for ( ; (argc < args.length) && (args[argc].startsWith("-")); argc++) {
  79             String arg = args[argc];
  80 
  81             if (arg.compareTo("-nr") == 0) {





  82                 startRegistry = false;
  83             } else if (arg.startsWith("-p")) {
  84                 if (arg.compareTo("-p") != 0) {
  85                     port = Integer.parseInt(arg.substring(2));
  86                 } else {
  87                   argc++;
  88                   if (argc >= args.length) {
  89                       printUsage();
  90                       System.exit(1);
  91                   }
  92                   port = Integer.parseInt(args[argc]);
  93                 }
  94             } else if (arg.startsWith("-n")) {
  95                 if (arg.compareTo("-n") != 0) {
  96                     rminame = arg.substring(2);
  97                 } else {
  98                     argc++;
  99                     if (argc >= args.length) {
 100                         printUsage();
 101                         System.exit(1);


   1 /*
   2  * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


  30 import java.rmi.registry.Registry;
  31 import java.rmi.registry.LocateRegistry;
  32 import java.net.MalformedURLException;
  33 import sun.jvmstat.monitor.remote.*;
  34 
  35 /**
  36  * Application providing remote access to the jvmstat instrumentation
  37  * exported by local Java Virtual Machine processes. Remote access is
  38  * provided through an RMI interface.
  39  *
  40  * @author Brian Doherty
  41  * @since 1.5
  42  */
  43 public class Jstatd {
  44 
  45     private static Registry registry;
  46     private static int port = -1;
  47     private static boolean startRegistry = true;
  48 
  49     private static void printUsage() {
  50         System.err.println("usage: jstatd [-nr] [-p port] [-n rminame]\n" +
  51                            "       jstatd -?|-h|--help");
  52     }
  53 
  54     static void bind(String name, RemoteHostImpl remoteHost)
  55                 throws RemoteException, MalformedURLException, Exception {
  56 
  57         try {
  58             Naming.rebind(name, remoteHost);
  59         } catch (java.rmi.ConnectException e) {
  60             /*
  61              * either the registry is not running or we cannot contact it.
  62              * start an internal registry if requested.
  63              */
  64             if (startRegistry && registry == null) {
  65                 int localport = (port < 0) ? Registry.REGISTRY_PORT : port;
  66                 registry = LocateRegistry.createRegistry(localport);
  67                 bind(name, remoteHost);
  68             } else {
  69                 throw e;
  70             }
  71         }
  72     }
  73 
  74     @SuppressWarnings("deprecation") // Use of RMISecurityManager
  75     public static void main(String[] args) {
  76         String rminame = null;
  77         int argc = 0;
  78 
  79         for ( ; (argc < args.length) && (args[argc].startsWith("-")); argc++) {
  80             String arg = args[argc];
  81 
  82             if (arg.compareTo("-?") == 0 ||
  83                 arg.compareTo("-h") == 0 ||
  84                 arg.compareTo("--help") == 0) {
  85                 printUsage();
  86                 System.exit(0);
  87             } else if (arg.compareTo("-nr") == 0) {
  88                 startRegistry = false;
  89             } else if (arg.startsWith("-p")) {
  90                 if (arg.compareTo("-p") != 0) {
  91                     port = Integer.parseInt(arg.substring(2));
  92                 } else {
  93                   argc++;
  94                   if (argc >= args.length) {
  95                       printUsage();
  96                       System.exit(1);
  97                   }
  98                   port = Integer.parseInt(args[argc]);
  99                 }
 100             } else if (arg.startsWith("-n")) {
 101                 if (arg.compareTo("-n") != 0) {
 102                     rminame = arg.substring(2);
 103                 } else {
 104                     argc++;
 105                     if (argc >= args.length) {
 106                         printUsage();
 107                         System.exit(1);


< prev index next >