4

There is so much confusion regarding this simple question it's driving me crazy. The post here says

there is no difference between JavaFX and Java licence now.

The post here says that we don't have to release our source code that uses JavaFX due to the GPL + Classpath exception. The post here says:

As of February 2013, JavaFX is partially open source and should become almost fully open source over the next few months.

The post here lists many of JavaFX's projects that have been open sourced, including "javafx-common".

Am I allowed to use JavaFX freely in my commercial applications or not? Do all of my above posts relate to OpenJFX not JavaFX? I have developed using JavaFX, not OpenJFX. Is this a massive mistake? If so, how easy is it to transition from JavaFX code to OpenJFX?

I'm so confused and just want a simple answer.

migrated from softwareengineering.stackexchange.com Jan 10 '17 at 12:57

This question came from our site for professionals, academics, and students working within the systems development life cycle.

  • I'm not seeking legal advice, and agree to not hold any user accountable for any information that they share. I'm only seeking personal opinions which could help clarify my obvious confusion. Literally anything you say that doesn't suggest I consult a lawyer is extremely valuable to me. – Mathomatic Jan 9 '17 at 15:51
  • You should ask the owner. If they do not explicitly say on their website, they likely have contact information. – Devsman Jan 9 '17 at 17:28
  • Ask the owner... who is that? Oracle? If you can find me a contact email address I'd certainly contact them. I haven't been able to find one. – Mathomatic Jan 9 '17 at 20:23
3

Since it is an Oracle product, the definitive answer for JavaFX should be found on Oracle's website:

JavaFX is available under the same license and business model as Java SE. This includes the ability for third party developers to distribute the runtime libraries with their application(s), subject to the terms and conditions of the license.

The relevant part of "the license" appears to be:

Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute those files specifically identified as redistributable in the README File ("Redistributables") provided that: (i) you distribute the Redistributables complete and unmodified, and only bundled as part of Programs, (ii) the Programs add significant and primary functionality to the Redistributables, (iii) you do not distribute additional software intended to supersede any component(s) of the Redistributables (unless otherwise specified in the applicable README File), (iv) you do not remove or alter any proprietary legends or notices contained in or on the Redistributables, (v) you only distribute the Redistributables pursuant to a license agreement that: (a) is a complete, unmodified reproduction of this Agreement; or (b) protects Oracle's interests consistent with the terms contained in the Agreement and includes the notice set forth in Section H, (vi) you agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software.

However, if you are in any doubt, you should of course consult Oracle and/or a lawyer as appropriate.

  • thanks for your time. I've read this previously and interpreted as follows, perhaps you could comment on whether you agree/disagree with any point? Oracle grants you a non-exclusive, non-transferable, limited license without fees means it's free to use JavaFX in a commercial application, so long as: you distribute the Redistributables complete and unmodified, and only bundled as part of Programs ... means I can't modify the JavaFx source code, but that I CAN bundle it with my commercial app. I have no idea what this means: – Mathomatic Jan 9 '17 at 17:57
  • the Programs add significant and primary functionality to the Redistributables. Does that mean my program must somehow advance the JavaFX source code, instead of merely USING the code? That doesn't seem right. do not distribute additional software intended to supersede any component(s) of the Redistributables means don't alter the source code nor create software that makes the Redistributables` obsolete. The remaining points all require that I don't modify their license, but ensure it's present in my distributables, and also don't sue them. Is that all correct? Free commercial use seems OK – Mathomatic Jan 9 '17 at 18:00
  • 1
    @Mathomatic The part you quoted just says that you must bundle the Redistributable with your program (don't offer it as a separate download). The part about "significant functionality" is probably so you don't just include the Redistributable along with a dummy program as a way of skirting that requirement. – Brandin Jan 9 '17 at 18:29
  • @Brandin, so it means my program must be legitimate in it's application/requirement of the Redistributables, got it. But, #4 FAQ found here says [JavaFX] code is available under the GPL v2 with Classpath Exception license, similar to other projects in OpenJDK. The Oracle JavaFX runtime and SDK implementations will continue to be released under the Oracle Binary Code License for the Java SE Platform.. The runtime is crucial though, yet it's not under GPL + Classpath? That's why I'm confused about bundling it – Mathomatic Jan 9 '17 at 18:34
  • Then lower down it says JavaFX is available under the same license and business model as Java SE. This includes the ability for third party developers to distribute the runtime librairies with their application(s), subject to the terms and conditions of the license. .... so I can bundle the JavaFX runtime, freely, along with my commercial application which uses the JavaFX codebase? I'm confused why it says runtime = BCL and then it says I can freely distribute (bundle?) it. Thoughts? – Mathomatic Jan 9 '17 at 18:37
3

See my answer to this closely related question. The gist is:

  • You cannot use the BCL-licensed JavaFX as provided by Oracle as pre-built for much anything beyond some evaluation and development
  • You can use the GPL+Classpath exception-licensed JavaFX runtime and open source libraries with an OpenJDK runtime for pretty much anything including commercial applications. You need to either build it yourself from sources or find a pre-built one (and this is NOT provided by Oracle)
  • 1
    Thanks Phillipe, I'm in the process of transitioning to OpenJDK now. Quick question: I've been developing using Oracle's JDK/JavaSE/JavaFX for sometime now, but only for personal use on my personal laptop. I haven't shared my code with anybody. Am I still at risk of an audit in your opinion? I can't imagine, since millions of people use Java for free everyday. Thoughts? – Mathomatic Jan 12 '17 at 13:40
  • 1
    You are not at risk for personal or development usage – Philippe Ombredanne Jan 12 '17 at 13:59
  • 1
    And practically the Oracle BCL does not give any audit rights to Oracle. Only a commercial contract would be able to do this (and Oracle is primarily going after its own commercial customers preferably the ones with deeper pockets first...). – Philippe Ombredanne Jan 12 '17 at 14:00

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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