번역 예정
The Oracle JDK (Java Development Kit) is a version of the JDK that is distributed by Oracle, the company that develops and maintains the Java programming language. The Oracle JDK is available under a proprietary license that allows users to download and use the software for free, but it also includes some restrictions on how the software can be used and distributed.
The Oracle JDK license includes terms that specify how the software can be used and distributed. For example, the license allows users to use the Oracle JDK to develop, test, and deploy Java applications, but it prohibits users from distributing the Oracle JDK as part of a commercial product or service. Additionally, the license requires users to include certain notices and disclaimers when distributing Java applications that use the Oracle JDK.
It's important to note that the Oracle JDK is not the only version of the JDK available. There are also versions of the JDK that are released under open source licenses, such as the OpenJDK, which allows users to modify and distribute the software without incurring any additional licensing fees.
Using the Oracle JDK in commercial applications can potentially give rise to licensing issues if the terms of the Oracle JDK license are not followed. The Oracle JDK license allows users to use the software to develop, test, and deploy Java applications, but it prohibits users from distributing the Oracle JDK as part of a commercial product or service.
For example, if a company develops a software product that includes the Oracle JDK as a component and distributes that product to customers, the company would need to obtain a separate license from Oracle in order to do so. This is because the Oracle JDK license does not allow users to distribute the JDK as part of a commercial product.
In addition to this, the Oracle JDK license requires users to include certain notices and disclaimers when distributing Java applications that use the Oracle JDK. Failure to include these notices and disclaimers could potentially result in licensing issues.
There are a few ways in which you can potentially circumvent commercial application licensing issues with the Oracle JDK:
Use a different version of the JDK: Instead of using the Oracle JDK, you could consider using a version of the JDK that is released under an open source license, such as the OpenJDK. This would allow you to use the JDK to develop, test, and deploy your commercial application without incurring any additional licensing fees.
Obtain a commercial license from Oracle: If you need to use the Oracle JDK in your commercial application and are unable to use an alternative version of the JDK, you could potentially obtain a commercial license from Oracle. This would allow you to use the Oracle JDK in your commercial application in accordance with the terms of the license.
Avoid distributing the Oracle JDK as part of your commercial application: Instead of distributing the Oracle JDK as part of your commercial application, you could consider including instructions for users to download and install the Oracle JDK themselves. This would allow you to use the Oracle JDK in your commercial application without violating the terms of the license.
What can happen if you violate the Oracle JDK's commercial license?
Violating the terms of the Oracle JDK's commercial license can potentially result in legal consequences. The Oracle JDK is licensed under a proprietary license that allows users to download and use the software for free, but it also includes some restrictions on how the software can be used and distributed.
If you violate the terms of the Oracle JDK's commercial license, Oracle may choose to take legal action against you in order to enforce the terms of the license. This could potentially include filing a lawsuit against you in order to seek damages or other remedies.
It's important to carefully review the terms of the Oracle JDK's commercial license and ensure that you are in compliance with them in order to avoid any potential legal consequences. If you have any questions or concerns about using the Oracle JDK in a commercial application, it's recommended to seek legal advice.
There are several versions of the Java Development Kit (JDK) that are released under open source licenses. Most of the open-source JDKs described below are available for a variety of platforms, including Windows, macOS, and Linux:
OpenJDK is an open source implementation of the Java Development Kit (JDK) that is developed and maintained by the OpenJDK community. OpenJDK is released under the GNU General Public License (GPL) v2 with the Classpath Exception, which allows users to use, modify, and distribute the software as long as they follow the terms of the license. OpenJDK does not offer any official support for its binaries, and users are responsible for obtaining support from the OpenJDK community or other third parties.
AdoptOpenJDK is an open source implementation of the JDK that is developed and maintained by the AdoptOpenJDK community. AdoptOpenJDK is also released under the GPL v2 with the Classpath Exception. In addition to providing open source binaries of the JDK, AdoptOpenJDK also offers long-term support for its binaries through a subscription model.
Eclipse OpenJ9 is an open source implementation of the JDK that is developed and maintained by the Eclipse Foundation. Eclipse OpenJ9 is released under the Eclipse Public License (EPL), which allows users to use, modify, and distribute the software as long as they follow the terms of the license. Eclipse OpenJ9 is designed to be used in conjunction with the Eclipse IDE and other Eclipse tools, and it is optimized for use in cloud and enterprise environments.
Amazon Corretto is an open source implementation of the JDK that is developed and maintained by Amazon Web Services (AWS). Amazon Corretto is released under the Amazon Software License, which allows users to use, modify, and distribute the software as long as they follow the terms of the license. Amazon Corretto is designed to be used in production environments and is optimized for use with AWS services.
GraalVM is a high-performance runtime environment for Java and other languages that is developed and maintained by Oracle. GraalVM is released under the Universal Permissive License (UPL), which allows users to use, modify, and distribute the software as long as they follow the terms of the license. GraalVM is designed to be used for building and deploying applications in cloud and container environments, and it includes tools for optimizing application performance and reducing resource usage.
Zulu Community JDK is an open source, binary distribution of the Java Development Kit (JDK) that is developed and maintained by Azul Systems. Zulu Community JDK is released under the MIT License, which allows users to use, modify, and distribute the software without incurring any additional licensing fees. Zulu Community JDK is fully compatible with the OpenJDK, which is an open source implementation of the JDK developed and maintained by the OpenJDK community.
It's important to note that the above list is not exhaustive and there may be other versions of the JDK that are released under open source licenses.
There are a few additional things to consider when it comes to JDK licensing:
Different versions of the JDK may have different licenses: It's important to be aware that different versions of the JDK may have different licenses. For example, the Oracle JDK is available under a proprietary license, while the OpenJDK is available under the GNU General Public License (GPL) v2 with the Classpath Exception. It's important to carefully review the terms of the license for the specific version of the JDK you are using to ensure that you are in compliance with them.
Using the JDK to develop commercial applications may require a commercial license: If you are using the JDK to develop commercial applications, you may need to obtain a commercial license from the provider of the JDK in order to do so. This is particularly the case with the Oracle JDK, which prohibits users from distributing the JDK as part of a commercial product or service without a separate commercial license.
Using the JDK may require you to include certain notices and disclaimers: Some versions of the JDK, such as the Oracle JDK, may require you to include certain notices and disclaimers when distributing applications that use the JDK. It's important to carefully review the terms of the license for the specific version of the JDK you are using to ensure that you are including the required notices and disclaimers.
Licensing issues can be complex: JDK licensing can be a complex topic, and it's important to seek legal advice if you have any questions or concerns about using the JDK in your projects.
¶ Criteria for "Commercial Application" in the Oracle JDK license
The Oracle JDK license defines a "commercial application" as an application that is developed or maintained for the purpose of generating revenue or profit. According to the Oracle JDK license, a commercial application may include, but is not limited to, the following:
- Sold or otherwise distributed to customers or users
- Used to provide a service that is charged for or generates revenue
- Used to generate advertising revenue
Here are a few examples of applications that may be considered commercial applications under the Oracle JDK license:
- Software tool that is sold to customers for a one-time fee or on a subscription basis
- Mobile app that is available for download from an app store and generates revenue through in-app purchases or ads
- Web-based service that is charged for on a subscription basis and provides users with access to specific features or functionality
- Business application that is used to manage and track financial transactions or customer information and is sold to businesses or organizations
The Oracle JDK license prohibits users from distributing the Oracle JDK as part of a commercial application without obtaining a separate commercial license from Oracle. This means that if you are using the Oracle JDK to develop an application that falls within the definition of a commercial application, you may need to obtain a commercial license from Oracle in order to do so.
¶ Why are open source JDK projects released as separate projects from OpenJDK?
AdoptOpenJDK, Eclipse OpenJ9, Amazon Corretto, GraalVM, and Zulu Community JDK are all based on the OpenJDK project, which is an open source implementation of the Java Development Kit (JDK) that is developed and maintained by the OpenJDK community.
There are a number of reasons above JDK projects were released as separate projects, rather than being part of the OpenJDK project. Here are a few possible reasons:
Different target audiences: Each of these projects may have a different target audience or focus, and they may be developed with specific goals or features in mind that are not shared by the OpenJDK project. For example, Eclipse OpenJ9 is optimized for use with the Eclipse IDE and other Eclipse tools, while Amazon Corretto is optimized for use with Amazon Web Services (AWS). GraalVM is designed to be used for building and deploying applications in cloud and container environments, while Zulu Community JDK is a binary distribution of the JDK that is released under the MIT License.
Different development models: The OpenJDK project is developed and maintained by the OpenJDK community, which is an open source community that operates under a governance model that is designed to ensure that the project is developed in an open and transparent manner. The AdoptOpenJDK, Eclipse OpenJ9, Amazon Corretto, GraalVM, and Zulu Community JDK projects may have different development models, such as being developed by a single company or organization, or by a smaller group of developers.
Different licenses: Each of these projects may be released under a different license than the OpenJDK project. For example, AdoptOpenJDK is released under the GNU General Public License (GPL) v2 with the Classpath Exception, Eclipse OpenJ9 is released under the Eclipse Public License (EPL), Amazon Corretto is released under the Amazon Software License, GraalVM is released under the Universal Permissive License (UPL), and Zulu Community JDK is released under the MIT License.
There are a number of reasons why above JDK projects were released as separate projects, rather than being part of the OpenJDK project. These projects offer additional features and enhancements that may be useful for specific use cases or environments, and they may be developed and maintained in different ways than the OpenJDK project.
¶ Classpath Exception?
The Classpath Exception is a clause that is often included in the GNU General Public License (GPL) v2 to allow users to link GPL-licensed software with other software that is not covered by the GPL.
The Classpath Exception allows users to distribute a combination of GPL-licensed software and other software as long as the GPL-licensed software is used solely for the purpose of running the other software. This means that users are allowed to use GPL-licensed software to run other software, but they are not allowed to modify the GPL-licensed software or distribute it as a standalone product.
The Classpath Exception is often included in open source software licenses in order to allow users to more easily use the software in conjunction with other software that may be licensed under different terms. It is commonly used in conjunction with the GPL v2 in open source Java projects, such as the OpenJDK and AdoptOpenJDK.
¶ About the licenses of the above open source JDK
GNU General Public License (GPL) v2, Eclipse Public License (EPL), Amazon Software License, Universal Permissive License (UPL), and MIT License are all open source licenses that allow users to use, modify, and distribute the software without incurring any additional licensing fees. However, they have different requirements for code disclosure and making the source code available to the public when distributing the software.
The GPL v2 is a copyleft license that requires users to make the source code of the software available to the public when distributing the software, either by including it with the distribution or by providing a means for obtaining it. The GPL v2 also requires users to distribute any modifications they make to the software under the GPL v2 or a compatible license.
The EPL, Amazon Software License, and UPL all require users to make the source code of the software available to the public when distributing the software, either by including it with the distribution or by providing a means for obtaining it. These licenses do not place any additional restrictions on the use of the software.
The MIT License requires users to include a copy of the license with any distribution of the software, but it does not require users to make the source code of the software available to the public. The MIT License does not place any restrictions on the use of the software.
Overall, these licenses allow users to use the software in commercial applications without incurring any additional licensing fees. However, they have different requirements for code disclosure and making the source code available to the public when distributing the software. It is important to carefully review the terms of each license before using the software in a commercial application.
¶ Can I deploy the API service implemented with AdoptOpenJDK to my company's server?
Yes, you can deploy an API service implemented with AdoptOpenJDK to your company's server. AdoptOpenJDK is a binary distribution of the OpenJDK project that is released under the GNU General Public License (GPL) v2 with the Classpath Exception. This means that you can use AdoptOpenJDK to develop and deploy an API service to your company's server without incurring any additional licensing fees.
However, it is important to carefully review the terms of the GPL v2 with the Classpath Exception before using AdoptOpenJDK in your company's server. The GPL v2 with the Classpath Exception is a copyleft license that requires users to make the source code of the software available to the public when distributing the software, either by including it with the distribution or by providing a means for obtaining it. The Classpath Exception allows users to distribute the software as part of a larger application without having to release the source code of the entire application, as long as the application is being distributed for the sole purpose of running the software.
If you plan to deploy an API service implemented with AdoptOpenJDK to your company's server, you should ensure that you are complying with the terms of the GPL v2 with the Classpath Exception. This may involve making the source code of the API service available to the public, or providing a means for obtaining it. You should also consider whether the terms of the GPL v2 with the Classpath Exception are compatible with your company's policies and any other legal or business requirements.
To check if your Java code is violating the Classpath Exception, you should first review the terms of the Classpath Exception to understand what is allowed and what is not allowed. The Classpath Exception is a clause that is included in some versions of the GNU General Public License (GPL) that allows users to distribute the software as part of a larger application without having to release the source code of the entire application, as long as the application is being distributed for the sole purpose of running the software.
Here are some things to consider when checking if your Java code is violating the Classpath Exception:
- Are you distributing the software as part of a larger application? If you are distributing the software as a standalone application, or as part of an application that is not intended to run the software, then you may be violating the Classpath Exception.
- Are you distributing the software for the sole purpose of running it? If you are distributing the software as part of an application that is intended to do something other than run the software, such as providing additional functionality or integration with other services, then you may be violating the Classpath Exception.
- Are you making the source code of the software available to the public? If you are distributing the software as part of a larger application, the Classpath Exception requires you to make the source code of the software available to the public, either by including it with the distribution or by providing a means for obtaining it.
Suppose you have developed a Java library that provides a set of useful utility functions for working with strings. You want to distribute this library as part of a larger application that you are developing, but you do not want to release the source code of the entire application to the public. You decide to distribute the library under the GNU General Public License (GPL) v2 with the Classpath Exception.
In this case, you would need to ensure that you are complying with the terms of the Classpath Exception when distributing your Java library. This may involve making the source code of the library available to the public, either by including it with the distribution or by providing a means for obtaining it. You would also need to ensure that the library is being distributed as part of a larger application that is intended to run the library, and that the library is not being used for any other purpose.
If you are distributing the library as part of an application that is intended to do something other than run the library, such as providing additional functionality or integration with other services, then you may be violating the Classpath Exception. In this case, you would need to either release the source code of the entire application to the public, or choose a different license that allows you to distribute the library as part of a larger application without having to release the source code.
Overall, it is important to carefully review the terms of the Classpath Exception and ensure that you are complying with them when distributing your Java code. If you have any doubts about whether your Java code is violating the Classpath Exception, you may want to consult with a legal professional for advice.