Skip to content

Project

smarkwal edited this page Mar 9, 2025 · 2 revisions

Requirements

  • JarHC requires at least Java 11.
  • JarHC has been tested with Java 11, Java 17, and Java 21.

Note: JarHC is able to analyze Java classes compiled for Java 1.0 to Java 21, independent of which Java version is used to run JarHC.

License

JarHC is released under the Apache License version 2.

Dependencies

ASM is an all-purpose Java bytecode manipulation and analysis framework.

License: 3-Clause BSD License.

The JSON-Java package is a reference implementation that demonstrates how to parse JSON documents into Java objects and how to generate new JSON documents from the Java classes.

License: The JSON License.

Apache Maven Artifact Resolver is a library for working with artifact repositories and dependency resolution.

License: Apache License version 2.

The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time.

License: MIT License.

Developers

Stephan Markwalder - @smarkwal

Ideas

See GitHub issues:

Development

Build

Building JarHC with Gradle requires at least Java 17.

Check if Java is installed and which version is used by default:

java -version

If needed, set JAVA_HOME to an installation of Java 17 or greater:

JAVA_HOME=/opt/java/jdk-17

Then, run a full build with Gradle Wrapper:

./gradlew :jarhc:build

To run a build without tests:

./gradlew :jarhc:build -Pskip.tests

To run the release tests:

./gradlew :jarhc-release-tests:test

To run the benchmarks:

./gradlew :jarhc:jmh

Sonar analysis

Run a full build first (see above).

Next, set your Sonar token for SonarCloud.

export SONAR_TOKEN=your-token-here

Finally, run the Sonar analysis.

./gradlew sonar

Scan results can be found in SonarCloud: https://sonarcloud.io/project/overview?id=smarkwal_jarhc

Clone this wiki locally