当前位置: 首页>>代码示例>>Java>>正文


Java Attributes.getValue方法代码示例

本文整理汇总了Java中java.util.jar.Attributes.getValue方法的典型用法代码示例。如果您正苦于以下问题:Java Attributes.getValue方法的具体用法?Java Attributes.getValue怎么用?Java Attributes.getValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.util.jar.Attributes的用法示例。


在下文中一共展示了Attributes.getValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readManifestJars

import java.util.jar.Attributes; //导入方法依赖的package包/类
private static String[] readManifestJars(InputStream in) throws IOException
{
	Manifest manifest = new Manifest(in);
	Attributes attributes = manifest.getMainAttributes();
	String classpath = attributes.getValue(Attributes.Name.CLASS_PATH);
	if(classpath == null)
		return ArrayUtils.EMPTY_STRING_ARRAY;
	System.out.println("Manifest jars: " + classpath);
	return classpath.split(" ");
}
 
开发者ID:MMORPG-Prototype,项目名称:MMORPG_Prototype,代码行数:11,代码来源:ReflectionResourceUtils.java

示例2: getJarClassPath

import java.util.jar.Attributes; //导入方法依赖的package包/类
public List<Path> getJarClassPath(Path file) throws IOException {
    Path parent = file.getParent();
    try (JarFile jarFile = new JarFile(file.toFile())) {
        Manifest man = jarFile.getManifest();
        if (man == null)
            return Collections.emptyList();

        Attributes attr = man.getMainAttributes();
        if (attr == null)
            return Collections.emptyList();

        String path = attr.getValue(Attributes.Name.CLASS_PATH);
        if (path == null)
            return Collections.emptyList();

        List<Path> list = new ArrayList<>();

        for (StringTokenizer st = new StringTokenizer(path);
             st.hasMoreTokens(); ) {
            String elt = st.nextToken();
            Path f = FileSystems.getDefault().getPath(elt);
            if (!f.isAbsolute() && parent != null)
                f = parent.resolve(f).toAbsolutePath();
            list.add(f);
        }

        return list;
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:30,代码来源:FSInfo.java

示例3: processManifest

import java.util.jar.Attributes; //导入方法依赖的package包/类
private static void processManifest(final List<VersionLine> components, final URL url) {
    try (InputStream is = url.openStream()) {
        final Manifest manifest = new Manifest(is);
        final Attributes attributes = manifest.getMainAttributes();

        final String artifact = attributes.getValue(ARTIFACT_ATTRIBUTE);
        if (artifact != null && !artifact.isEmpty()) {
            components.add(maakVersionLine(attributes));
        }
    } catch (final IOException e) {
        LOGGER.warn("Could not read manifest: {} ", url, e);
    }
}
 
开发者ID:MinBZK,项目名称:OperatieBRP,代码行数:14,代码来源:Version.java

示例4: getAvailableExtensions

import java.util.jar.Attributes; //导入方法依赖的package包/类
/**
 * Return the set of <code>Extension</code> objects representing optional
 * packages that are bundled with the application associated with the
 * specified <code>Manifest</code>.
 *
 * @param manifest Manifest to be parsed
 *
 * @return List of available extensions, or null if the web application
 * does not bundle any extensions
 */
private ArrayList getAvailableExtensions(Manifest manifest) {

    Attributes attributes = manifest.getMainAttributes();
    String name = attributes.getValue("Extension-Name");
    if (name == null)
        return null;

    ArrayList extensionList = new ArrayList();

    Extension extension = new Extension();
    extension.setExtensionName(name);
    extension.setImplementationURL(
        attributes.getValue("Implementation-URL"));
    extension.setImplementationVendor(
        attributes.getValue("Implementation-Vendor"));
    extension.setImplementationVendorId(
        attributes.getValue("Implementation-Vendor-Id"));
    extension.setImplementationVersion(
        attributes.getValue("Implementation-Version"));
    extension.setSpecificationVersion(
        attributes.getValue("Specification-Version"));

    extensionList.add(extension);

    return extensionList;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:37,代码来源:ManifestResource.java

示例5: addJarClassPath

import java.util.jar.Attributes; //导入方法依赖的package包/类
private void addJarClassPath(String jarFileName, boolean warn) {
            try {
                String jarParent = new File(jarFileName).getParent();
                JarFile jar = new JarFile(jarFileName);

                try {
                    Manifest man = jar.getManifest();
                    if (man == null) return;

                    Attributes attr = man.getMainAttributes();
                    if (attr == null) return;

                    String path = attr.getValue(Attributes.Name.CLASS_PATH);
                    if (path == null) return;

                    for (StringTokenizer st = new StringTokenizer(path);
                        st.hasMoreTokens();) {
                        String elt = st.nextToken();
                        if (jarParent != null)
                            elt = new File(jarParent, elt).getCanonicalPath();
                        addFile(elt, warn);
                    }
                } finally {
                    jar.close();
                }
            } catch (IOException e) {
//              log.error(Position.NOPOS,
//                        "error.reading.file", jarFileName,
//                        e.getLocalizedMessage());
            }
        }
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:32,代码来源:BatchEnvironment.java

示例6: readAttribute

import java.util.jar.Attributes; //导入方法依赖的package包/类
protected Object readAttribute(String name, String attrName) {
    if ("java.io.File".equals(attrName)) {
        return null;
    }
    Attributes attr1 = getManifest().getAttributes(name);

    try {
        return (attr1 == null) ? null : attr1.getValue(attrName);
    } catch (IllegalArgumentException iax) {
        return null;
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:13,代码来源:JarFileSystem.java

示例7: getMainClassFromJar

import java.util.jar.Attributes; //导入方法依赖的package包/类
static String getMainClassFromJar(String jarname) {
    String mainValue = null;
    try (JarFile jarFile = new JarFile(jarname)) {
        Manifest manifest = jarFile.getManifest();
        if (manifest == null) {
            abort(null, "java.launcher.jar.error2", jarname);
        }
        Attributes mainAttrs = manifest.getMainAttributes();
        if (mainAttrs == null) {
            abort(null, "java.launcher.jar.error3", jarname);
        }
        mainValue = mainAttrs.getValue(MAIN_CLASS);
        if (mainValue == null) {
            abort(null, "java.launcher.jar.error3", jarname);
        }

        /*
         * Hand off to FXHelper if it detects a JavaFX application
         * This must be done after ensuring a Main-Class entry
         * exists to enforce compliance with the jar specification
         */
        if (mainAttrs.containsKey(
                new Attributes.Name(FXHelper.JAVAFX_APPLICATION_MARKER))) {
            return FXHelper.class.getName();
        }

        return mainValue.trim();
    } catch (IOException ioe) {
        abort(ioe, "java.launcher.jar.error1", jarname);
    }
    return null;
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:33,代码来源:LauncherHelper.java

示例8: isSealed

import java.util.jar.Attributes; //导入方法依赖的package包/类
private boolean isSealed(String name, Manifest man) {
    String path = name.replace('.', '/').concat("/");
    Attributes attr = man.getAttributes(path);
    String sealed = null;
    if (attr != null) {
        sealed = attr.getValue(Name.SEALED);
    }
    if (sealed == null) {
        if ((attr = man.getMainAttributes()) != null) {
            sealed = attr.getValue(Name.SEALED);
        }
    }
    return "true".equalsIgnoreCase(sealed);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:15,代码来源:URLClassLoader.java

示例9: readProperty

import java.util.jar.Attributes; //导入方法依赖的package包/类
/**
 * read a property from the manifest attributes.
 *
 * @param attrs    the attributes.
 * @param property the name of the property to read.
 * @return the values.
 * @throws BundleException if the manifest has an empty value for the key.
 */
private static String[] readProperty(final Attributes attrs, final String property) throws BundleException {
    final String values = attrs.getValue(property);
    if (values != null && values.equals("")) {
        // throw new BundleException("Broken manifest, " + property + " is empty.");
        return new String[0];
    }

    return splitString(values);
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:18,代码来源:BundleClassLoader.java

示例10: checkExtensions

import java.util.jar.Attributes; //导入方法依赖的package包/类
protected boolean checkExtensions(JarFile jar)
    throws ExtensionInstallationException
{
    Manifest man;
    try {
        man = jar.getManifest();
    } catch (IOException e) {
        return false;
    }

    if (man == null) {
        // The applet does not define a manifest file, so
        // we just assume all dependencies are satisfied.
        return true;
    }

    boolean result = true;
    Attributes attr = man.getMainAttributes();
    if (attr != null) {
        // Let's get the list of declared dependencies
        String value = attr.getValue(Name.EXTENSION_LIST);
        if (value != null) {
            StringTokenizer st = new StringTokenizer(value);
            // Iterate over all declared dependencies
            while (st.hasMoreTokens()) {
                String extensionName = st.nextToken();
                debug("The file " + jar.getName() +
                      " appears to depend on " + extensionName);
                // Sanity Check
                String extName = extensionName + "-" +
                    Name.EXTENSION_NAME.toString();
                if (attr.getValue(extName) == null) {
                    debug("The jar file " + jar.getName() +
                          " appers to depend on "
                          + extensionName + " but does not define the " +
                          extName + " attribute in its manifest ");

                } else {
                    if (!checkExtension(extensionName, attr)) {
                        debug("Failed installing " + extensionName);
                        result = false;
                    }
                }
            }
        } else {
            debug("No dependencies for " + jar.getName());
        }
    }
    return result;
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:51,代码来源:ExtensionDependency.java

示例11: add

import java.util.jar.Attributes; //导入方法依赖的package包/类
public void add(String packageName) throws BundleException, IOException, CoreException {
	final String exportPackageHeader = "Export-Package";
	
	boolean foundHeader = false;
	boolean hasValuesForPackageName = false;
	StringBuilder strBuilder = new StringBuilder();

	Attributes mainAttrs = getManifest().getMainAttributes();
	for (Object entryName : mainAttrs.keySet()) {
		String values;
		String header;

		// Get the values safely
		if (entryName instanceof String) {
			header = (String) entryName;
			values = mainAttrs.getValue(header);
		} else if (entryName instanceof Attributes.Name) {
			header = (String) ((Attributes.Name) entryName).toString();
			values = mainAttrs.getValue((Attributes.Name) entryName);
		} else {
			throw new BundleException("Unknown Main Attribute Key type: "
					+ entryName.getClass() + " (" + entryName + ")");
		}

		// loop to the next header if we don't find ours
		if (!exportPackageHeader.equals(header))
			continue;

		// found it
		foundHeader = true;

		// process the components of the value for this element see
		// ManifestElement javadocs for spec
		if (values != null) {
			ManifestElement[] elements = ManifestElement.parseHeader(
					header, values);
			for (int i = 0; i < elements.length; i++) {
				ManifestElement manifestElement = elements[i];

				boolean lastElement = i >= elements.length - 1;
				if(packageName.equals(manifestElement.getValueComponents()[0])){
					hasValuesForPackageName = true;
					break;
				}
				strBuilder.append(manifestElement.getValue());
				if (!lastElement) {
					strBuilder.append(",\n");
				}
			}
		}
	
		break;
	}
	if (!foundHeader) {
		// Add a new one with this package
		getManifest().getMainAttributes().putValue(
				exportPackageHeader,
				packageName);
	} else  {
		// found it and wish to edit it...
		if (!hasValuesForPackageName) {
			// There are no values for the package we wish to add.
			// ...create a fresh entry
			String existingValues = strBuilder.toString();
			boolean areExistingValues = existingValues.trim().length() != 0;
			String newValue = packageName ;
			newValue = (areExistingValues) ? (existingValues + ",\n " + newValue)
					: newValue;
			getManifest().getMainAttributes().putValue(exportPackageHeader,
					newValue);
		}
	}
}
 
开发者ID:eclipse,项目名称:gemoc-studio,代码行数:74,代码来源:ManifestChangerExportPackage.java

示例12: definePackage

import java.util.jar.Attributes; //导入方法依赖的package包/类
/**
 * Defines a new package by name in this ClassLoader. The attributes
 * contained in the specified Manifest will be used to obtain package
 * version and sealing information. For sealed packages, the additional
 * URL specifies the code source URL from which the package was loaded.
 *
 * @param name  the package name
 * @param man   the Manifest containing package version and sealing
 *              information
 * @param url   the code source url for the package, or null if none
 * @exception   IllegalArgumentException if the package name duplicates
 *              an existing package either in this class loader or one
 *              of its ancestors
 * @return the newly defined Package object
 */
protected Package definePackage(String name, Manifest man, URL url)
    throws IllegalArgumentException
{
    String path = name.replace('.', '/').concat("/");
    String specTitle = null, specVersion = null, specVendor = null;
    String implTitle = null, implVersion = null, implVendor = null;
    String sealed = null;
    URL sealBase = 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;
    }
    return definePackage(name, specTitle, specVersion, specVendor,
                         implTitle, implVersion, implVendor, sealBase);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:65,代码来源:URLClassLoader.java

示例13: maakVersionLine

import java.util.jar.Attributes; //导入方法依赖的package包/类
private static VersionLine maakVersionLine(final Attributes attributes) {
    return new VersionLine(attributes.getValue(GROUP_ATTRIBUTE), attributes.getValue(ARTIFACT_ATTRIBUTE), attributes.getValue(NAME_ATTRIBUTE),
            attributes.getValue(VERSION_ATTRIBUTE));
}
 
开发者ID:MinBZK,项目名称:OperatieBRP,代码行数:5,代码来源:Version.java

示例14: definePackage

import java.util.jar.Attributes; //导入方法依赖的package包/类
/**
 * Defines a new package by name in this {@code URLClassLoader}.
 * The attributes contained in the specified {@code Manifest}
 * will be used to obtain package version and sealing information.
 * For sealed packages, the additional URL specifies the code source URL
 * from which the package was loaded.
 *
 * @param name  the package name
 * @param man   the {@code Manifest} containing package version and sealing
 *              information
 * @param url   the code source url for the package, or null if none
 * @throws      IllegalArgumentException if the package name is
 *              already defined by this class loader
 * @return      the newly defined {@code Package} object
 *
 * @revised 9
 * @spec JPMS
 */
protected Package definePackage(String name, Manifest man, URL url) {
    String path = name.replace('.', '/').concat("/");
    String specTitle = null, specVersion = null, specVendor = null;
    String implTitle = null, implVersion = null, implVendor = null;
    String sealed = null;
    URL sealBase = 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;
    }
    return definePackage(name, specTitle, specVersion, specVendor,
                         implTitle, implVersion, implVendor, sealBase);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:66,代码来源:URLClassLoader.java

示例15: getMainClassFromJar

import java.util.jar.Attributes; //导入方法依赖的package包/类
static String getMainClassFromJar(String jarname) {
    String mainValue;
    try (JarFile jarFile = new JarFile(jarname)) {
        Manifest manifest = jarFile.getManifest();
        if (manifest == null) {
            abort(null, "java.launcher.jar.error2", jarname);
        }
        Attributes mainAttrs = manifest.getMainAttributes();
        if (mainAttrs == null) {
            abort(null, "java.launcher.jar.error3", jarname);
        }

        // Main-Class
        mainValue = mainAttrs.getValue(MAIN_CLASS);
        if (mainValue == null) {
            abort(null, "java.launcher.jar.error3", jarname);
        }

        // Launcher-Agent-Class (only check for this when Main-Class present)
        String agentClass = mainAttrs.getValue(LAUNCHER_AGENT_CLASS);
        if (agentClass != null) {
            ModuleLayer.boot().findModule("java.instrument").ifPresent(m -> {
                try {
                    String cn = "sun.instrument.InstrumentationImpl";
                    Class<?> clazz = Class.forName(cn, false, null);
                    Method loadAgent = clazz.getMethod("loadAgent", String.class);
                    loadAgent.invoke(null, jarname);
                } catch (Throwable e) {
                    if (e instanceof InvocationTargetException) e = e.getCause();
                    abort(e, "java.launcher.jar.error4", jarname);
                }
            });
        }

        // Add-Exports and Add-Opens
        String exports = mainAttrs.getValue(ADD_EXPORTS);
        if (exports != null) {
            addExportsOrOpens(exports, false);
        }
        String opens = mainAttrs.getValue(ADD_OPENS);
        if (opens != null) {
            addExportsOrOpens(opens, true);
        }

        /*
         * Hand off to FXHelper if it detects a JavaFX application
         * This must be done after ensuring a Main-Class entry
         * exists to enforce compliance with the jar specification
         */
        if (mainAttrs.containsKey(
                new Attributes.Name(JAVAFX_APPLICATION_MARKER))) {
            FXHelper.setFXLaunchParameters(jarname, LM_JAR);
            return FXHelper.class.getName();
        }

        return mainValue.trim();
    } catch (IOException ioe) {
        abort(ioe, "java.launcher.jar.error1", jarname);
    }
    return null;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:62,代码来源:LauncherHelper.java


注:本文中的java.util.jar.Attributes.getValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。