Oracle更改了其Java版本的许可证:
我想Java 7及以下的所有Oracle版本都是OBCL。我不确定该旧许可证下是否有任何Oracle Java 9+版本。
当然,其他Java发行版(OpenJDK等)也具有其他许可证。
正在运行的程序是否可以确定底层JVM / JRE的许可证?动机:当用户在特定许可证的JVM / JRE上使用我的程序时,我想警告他们的程序。
我一直找不到包含这些信息的任何标准系统属性,而且我还查看了构成JRE的JAR清单。
有几个地方提供对Java版本的结构化访问:
IS_JAVA_1_8等前者并没有详细介绍更新号,而后者仅在Java 9+中可用。无论如何,两者仍需要其他资源来将已知的Java版本映射到其各自的许可证。
另外:我知道Oracle最新建议将JRE与一个应用程序捆绑在一起,并且可以通过这种方式避免此问题。
java ×1