以下是InitContext过程中要做的。

String getJndiProperty(final int i) {
  return (String) AccessController.doPrivileged(
         new PrivilegedAction() {
    public Object run() {
            try {
      return System.getProperty(PROPS[i]);
            } catch (SecurityException e) {
      return null;
            }
                 }
         }
  );
        }

        String[] getJndiProperties() {
  if (getSystemPropsFailed) {
         return null;  // after one failure, don't bother trying again
  }
  Properties sysProps = (Properties) AccessController.doPrivileged(
         new PrivilegedAction() {
    public Object run() {
            try {
      return System.getProperties();
            } catch (SecurityException e) {
      getSystemPropsFailed = true;
      return null;
            }
    }
         }
  );
  if (sysProps == null) {
         return null;
  }
  String[] jProps = new String[PROPS.length];
  for (int i = 0; i < PROPS.length; i++) {
         jProps[i] = sysProps.getProperty(PROPS[i]);
  }
  return jProps;
        }