代码之家  ›  专栏  ›  技术社区  ›  er4z0r

manifest.mf中定义的值是否可以通过编程方式访问?

  •  13
  • er4z0r  · 技术社区  · 15 年前

    我能从代码中访问Java清单中定义的值吗?

    5 回复  |  直到 10 年前
        1
  •  11
  •   Jon Skeet    15 年前

    打开文件时使用 JarFile 然后打电话 getManifest() 得到 Manifest .之后,您可以适当地访问属性。

        2
  •  17
  •   Joachim Sauer    15 年前

    manifest.mf中的许多值可以通过编程方式访问,而无需查找和/或打开jar文件本身。

    班级 java.lang.Package 提供访问 ImplementationTitle , ImplementationVendor , ImplementationVersion , SpecificationTitle , SpecificationVendor 以及 SpecificationVersion .

    有关已签名类的信息可以使用 CodeSource 类,可以通过 Class .getProtectionDomain() .getCodeSource()

        3
  •  5
  •   trashgod    15 年前

    这里有一个简单的例子 example 从jar的清单中读取主要属性 就地 . 它便于检查实际存在的内容。

        4
  •  4
  •   David Victor    11 年前

    使用以下方法检测外部jar/sdk manifest.mf信息。我们可以使用这个信息来检测jar版本等。 http://docs.oracle.com/javase/6/docs/api/java/util/jar/Manifest.html

      public void getSDKInfo() {
        Package pkg = Manifest.class.getPackage();
        String specTitle = pkg.getSpecificationTitle();
        String vendor = pkg.getSpecificationVendor();
        String version = pkg.getSpecificationVersion();
       }
    
        5
  •  0
  •   yegor256    10 年前

    尝试 com.jcabi.manifests.Manifests 实用程序类来自 jcabi-manifests . 使用这个类,您可以用一个行程序读取所有可用的manifest.mf文件:

    String name = Manifests.read("Foo-Name");
    

    另请参阅本文: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html