JHOVE (Harvard Object Validation Environment)

Revision as of 14:10, 17 August 2021 by TerjePD (talk | contribs)
Jump to navigation Jump to search

JHOVE (Harvard Object Validation Environment)
JHOVE provides functions to perform format-specific identification, validation, and characterization of digital objects.
License:GNU Lesser General Public License (LGPL)
Platforms:JHOVE should be usable on any UNIX, Windows, or OS X platform with an appropriate J2SE installation. It should run on any operating system that supports Java 1.5 and has a directory-based file system.
Input Formats:PREMIS (Preservation Metadata Implementation Strategies)
Function:Encryption Detection,File Format Identification,Metadata Extraction,Validation
Appears in COW:Digital archiving workflow (high-level)


JHOVE allows data curators to verify the file formats of the digital objects in their repositories. The analysis consists of three functions: identification, which determines the object’s format; validation, which checks whether the object conforms to its format’s technical norms; and characterization, which gives a report of the object’s salient properties. Detailed information can be found in the DCC JHOVE Case Study.


Open Preservation Foundation

Licensing and cost

GNU Lesser General Public License – free.

Platform and interoperability

JHOVE is implemented using Java 2 Standard Edition 5.0 (JDK 1.5). It was designed incorporating an API, which can be used on its own to create compatible tools and applications. Developers wishing to recompile the JHOVE source code will require Apache Ant.

Functional notes

JHOVE includes modules for the following 12 format types: AIFF; ASCII encoded text; GIF; HTML; JPEG; JPEG2000; PDF; TIFF; UTF-8 encoded text; WAVE; XML; and arbitrary bytestreams. Three of these formats (AIFF, GIF and JPEG) will not be supported by JHOVE2, while a further two (JPEG2000 and PDF) are not currently supported by JHOVE2 but may be in future. HTML is not directly supported by JHOVE2 but can be processed either as SGML or XML. A number of limitations have come to light since JHOVE was first released, many of which are addressed with the JHOVE2 project. Currently, identification and validation are linked, with successful identification dependent on the validation process.  This means that any trivial error in the validation process can result in an object failing to be identified. In addition, JHOVE cannot analyze objects that are comprised of multiple file formats. Developers have also remarked that working with the API is difficult.

Documentation and user support

The JHOVE website includes an excellent introduction and tutorial. It also provides detailed specifications for its modules. The SourceForge code repository includes a forum, which seems to be used only sporadically. It also hosts a mailing list and the usual facilities for filing bug reports, feature requests and support requests.


While installation and configuration can be complex, the Swing-based GUI allows for relatively easy use. JHOVE can also be invoked with a command-line interface.

Expertise required

Installation requires solid knowledge of command line interfaces and experience with manually editing configuration files. Familiarity with metadata outputs is also essential.

Standards compliance

JHOVE was designed to integrate into the Ingest function of an OAIS. The validation process compares objects’ formats against ISO standards.

Influence and take-up

The SourceForge website reports approximately 11,400 downloads from the release of JHOVE 1.1 from 2008 to July 2013. Use of JHOVE is widespread in the digital preservation community. JHOVE is integrated within the Planets Testbed and Plato.

User Experiences

Development Activity

While much of its development effort has been diverted to JHOVE2, JHOVE is still actively maintained and developed by the OPF [1] as it supports some common formats that JHOVE2 does not.

All development activity is visible on GitHub: http://github.com/openpreserve/jhove/commits

Release Feed

Below the last 3 release feeds:

2023-05-19 09:42:38
[tag:github.com,2008:Repository/17627031/v1.28.0 JHOVE v1.28.0]
by carlwilson
2023-04-20 13:37:30
[tag:github.com,2008:Repository/17627031/v1.28.0-RC2 JHOVE v1.28.0-RC2]
by carlwilson
2023-03-16 15:02:33
[tag:github.com,2008:Repository/17627031/v1.28.0-RC1 JHOVE v1.28.0-RC1]
by carlwilson

Activity Feed

Below the last 5 activity feeds:

2022-11-22 15:55:49
[tag:github.com,2008:Grit::Commit/4d75cfcae7c3b92b6fa74a36369cadc4e6950325 Merge pull request #790 from openpreserve/integration]
by carlwilson https://github.com/carlwilson
2022-11-22 15:25:52
[tag:github.com,2008:Grit::Commit/7a8eb2cbf9d2de5ad35a659a724992e92bb937d7 Merge pull request #794 from openpreserve/fix/gh-actions-xml]
by carlwilson https://github.com/carlwilson
2022-11-22 14:46:27
[tag:github.com,2008:Grit::Commit/a6e5d91683239f7b366ea5e5801024268d722768 PATCH: Failing tests on GitHub Actions]
by carlwilson https://github.com/carlwilson
2022-11-18 16:04:53
[tag:github.com,2008:Grit::Commit/de6b9e7befeec835e46a2d2dade22b257dd501b6 Merge branch 'master' into integration]
by carlwilson https://github.com/carlwilson
2022-07-14 14:31:56
[tag:github.com,2008:Grit::Commit/1bb234219c08a0bdce8f15dd003c3fb920e51814 Merge pull request #775 from openpreserve/rel/1.26]
by carlwilson https://github.com/carlwilson

About Formats

JHOVE do only read the format itself, not the spesification as such