⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 package.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	if (l != null) {	    return l.getPackage(name);	} else {	    return getSystemPackage(name);	}    }    /**     * Get all the packages currently known for the caller's <code>ClassLoader</code>     * instance.  Those packages correspond to classes loaded via or accessible by     * name to that <code>ClassLoader</code> instance.  If the caller's     * <code>ClassLoader</code> instance is the bootstrap <code>ClassLoader</code>     * instance, which may be represented by <code>null</code> in some implementations,     * only packages corresponding to classes loaded by the bootstrap     * <code>ClassLoader</code> instance will be returned.     *     * @return a new array of packages known to the callers <code>ClassLoader</code>     * instance.  An zero length array is returned if none are known.     */    public static Package[] getPackages() {	ClassLoader l = ClassLoader.getCallerClassLoader();	if (l != null) {	    return l.getPackages();	} else {	    return getSystemPackages();	}    }    /**     * Get the package for the specified class.     * The class's class loader is used to find the package instance     * corresponding to the specified class. If the class loader     * is the bootstrap class loader, which may be represented by     * <code>null</code> in some implementations, then the set of packages     * loaded by the bootstrap class loader is searched to find the package.     * <p>     * Packages have attributes for versions and specifications only     * if the class loader created the package     * instance with the appropriate attributes. Typically those     * attributes are defined in the manifests that accompany     * the classes.     *     * @param class the class to get the package of.     * @return the package of the class. It may be null if no package     * 		information is available from the archive or codebase.  */    static Package getPackage(Class c) {	String name = c.getName();	int i = name.lastIndexOf('.');	if (i != -1) {	    name = name.substring(0, i);	    ClassLoader cl = c.getClassLoader();	    if (cl != null) {		return cl.getPackage(name);	    } else {		return getSystemPackage(name);	    }	} else {	    return null;	}    }    /**     * Return the hash code computed from the package name.     * @return the hash code computed from the package name.     */    public int hashCode(){    	return pkgName.hashCode();    }    /**     * Returns the string representation of this Package.     * Its value is the string "package " and the package name.     * If the package title is defined it is appended.     * If the package version is defined it is appended.     * @return the string representation of the package.     */    public String toString() {	String spec = specTitle;	String ver =  specVersion;	if (spec != null && spec.length() > 0)	    spec = ", " + spec;	else	    spec = "";	if (ver != null && ver.length() > 0)	    ver = ", version " + ver;	else	    ver = "";	return "package " + pkgName + spec + ver;    }    /**     * Construct a package instance with the specified version     * information.     * @param pkgName the name of the package     * @param spectitle the title of the specification     * @param specversion the version of the specification     * @param specvendor the organization that maintains the specification     * @param impltitle the title of the implementation     * @param implversion the version of the implementation     * @param implvendor the organization that maintains the implementation     * @return a new package for containing the specified information.     */    Package(String name,	    String spectitle, String specversion, String specvendor,	    String impltitle, String implversion, String implvendor,	    URL sealbase)    {    	pkgName = name;	implTitle = impltitle;	implVersion = implversion;	implVendor = implvendor;	specTitle = spectitle;	specVersion = specversion;	specVendor = specvendor;	sealBase = sealbase;    }    /*     * Construct a package using the attributes from the specified manifest.     *     * @param name the package name     * @param man the optional manifest for the package     * @param url the optional code source url for the package     */    private Package(String name, Manifest man, URL url) {	String path = name.replace('.', '/').concat("/");	String sealed = null;	Attributes attr = man.getAttributes(path);	if (attr != null) {	    specTitle   = attr.getValue(Name.SPECIFICATION_TITLE);	    specVersion = attr.getValue(Name.SPECIFICATION_VERSION);	    specVendor  = attr.getValue(Name.SPECIFICATION_VENDOR);	    implTitle   = attr.getValue(Name.IMPLEMENTATION_TITLE);	    implVersion = attr.getValue(Name.IMPLEMENTATION_VERSION);	    implVendor  = attr.getValue(Name.IMPLEMENTATION_VENDOR);	    sealed      = attr.getValue(Name.SEALED);	}	attr = man.getMainAttributes();	if (attr != null) {	    if (specTitle == null) {		specTitle = attr.getValue(Name.SPECIFICATION_TITLE);	    }	    if (specVersion == null) {		specVersion = attr.getValue(Name.SPECIFICATION_VERSION);	    }	    if (specVendor == null) {		specVendor = attr.getValue(Name.SPECIFICATION_VENDOR);	    }	    if (implTitle == null) {		implTitle = attr.getValue(Name.IMPLEMENTATION_TITLE);	    }	    if (implVersion == null) {		implVersion = attr.getValue(Name.IMPLEMENTATION_VERSION);	    }	    if (implVendor == null) {		implVendor = attr.getValue(Name.IMPLEMENTATION_VENDOR);	    }	    if (sealed == null) {		sealed = attr.getValue(Name.SEALED);	    }	}	if ("true".equalsIgnoreCase(sealed)) {	    sealBase = url;	}	pkgName = name;    }    /*     * Returns the loaded system package for the specified name.     */    static Package getSystemPackage(String name) {	synchronized (pkgs) {	    Package pkg = (Package)pkgs.get(name);	    if (pkg == null) {		name = name.replace('.', '/').concat("/");		String fn = getSystemPackage0(name);		if (fn != null) {		    pkg = defineSystemPackage(name, fn);		}	    }	    return pkg;	}    }    /*     * Return an array of loaded system packages.     */    static Package[] getSystemPackages() {	// First, update the system package map with new package names	String[] names = getSystemPackages0();	synchronized (pkgs) {	    for (int i = 0; i < names.length; i++) {		defineSystemPackage(names[i], getSystemPackage0(names[i]));	    }	    return (Package[])pkgs.values().toArray(new Package[pkgs.size()]);	}    }    private static Package defineSystemPackage(final String iname,					       final String fn)    {	return (Package) AccessController.doPrivileged(new PrivilegedAction() {	    public Object run() {		String name = iname;		// Get the cached code source url for the file name		URL url = (URL)urls.get(fn);		if (url == null) {		    // URL not found, so create one		    File file = new File(fn);		    try {			url = ParseUtil.fileToEncodedURL(file);		    } catch (MalformedURLException e) {		    }		    if (url != null) {			urls.put(fn, url);			// If loading a JAR file, then also cache the manifest			if (file.isFile()) {			    mans.put(fn, loadManifest(fn));			}		    }		}		// Convert to "."-separated package name		name = name.substring(0, name.length() - 1).replace('/', '.');		Package pkg;		Manifest man = (Manifest)mans.get(fn);		if (man != null) {		    pkg = new Package(name, man, url);		} else {		    pkg = new Package(name, null, null, null,				      null, null, null, null);		}		pkgs.put(name, pkg);		return pkg;	    }	});    }    /*     * Returns the Manifest for the specified JAR file name.     */    private static Manifest loadManifest(String fn) {	try {	    FileInputStream fis = new FileInputStream(fn);	    JarInputStream jis = new JarInputStream(fis, false);	    Manifest man = jis.getManifest();	    jis.close();	    return man;	} catch (IOException e) {	    return null;	}    }    // The map of loaded system packages    private static Map pkgs = new HashMap(31);    // Maps each directory or zip file name to its corresponding url    private static Map urls = new HashMap(10);    // Maps each code source url for a jar file to its manifest    private static Map mans = new HashMap(10);    private static native String getSystemPackage0(String name);    private static native String[] getSystemPackages0();    /*     * Private storage for the package name and attributes.     */    private String pkgName;    private String specTitle;    private String specVersion;    private String specVendor;    private String implTitle;    private String implVersion;    private String implVendor;    private URL sealBase;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -