I'm planning to write a bytecode viewer for Java 17 classfile, and distribute my work under some permissive license.

In order to keep consistent my implemenation, I'd like to link my code to Chapter 4 of the Java Virtual Machine Specification (JVMS) in some way. The JVMS seems licensed under Appendix A. Limited License Grant .

According to the answer for my previous post, I may not include the JVMS document file in my work directly. But linking to the JVMS may be possible.

So I have twofold plan.

Firstly, HTML parser program load the page, extract data from the specification, and transform it to skeleton code. For example, the parser extract information from <pre class="screen"> tags and convert it to method calls.

Secondly, I would add some functionality to the skeleton code.

Then, is it legitimate to publish my works in a permissive licnese, possibly include both the parser and the skeleton, or the skeleton only?


1 Answer 1


The license of this specification does not allow you to create derivative works.

What you plan to do is to create a derivative work ("extract data from the specification, and transform it to skeleton code. [...] add some functionality to the skeleton code.").

If you did what you plan, you would be in breach of the license.

  • Thank you for the answer, but I need a bit of clarification of "derivative works". Is it a derivative work that reading the specification carefully and manually implement what the specification defines? Isn't it a taste of difference between automatic and manual? Implementation of VM seems to need in some way to copy the specification definitions. What did they do who implemented variant JVM or JVM related tools?
    – Takashi
    Dec 19, 2022 at 8:05
  • @Takashi Please read the license language. " ... This includes (i) developing applications intended to run on an implementation of the Specification, provided that such applications do not themselves implement any portion(s) of the Specification ..." (emphasis added). You seem to be trying to create an implementation by directly using (=derivative work) portions of the specification. Dec 19, 2022 at 8:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.