1

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 hoping to hear from jewelsea or somebody who has intricate knowledge of JavaFX/OpenJFX. I have also posted a Stack Exchange question related to this here.

Community
  • 1
  • 1
Mathomatic
  • 899
  • 1
  • 13
  • 38
  • 4
    Just a recommendation - this is a legal question. As with any question regarding law I suggest that you need to contact an attorney with the appropriate background, obtain his advice, and follow it. – Bob Jarvis - Слава Україні Jan 09 '17 at 15:31
  • 2
    What am I suppose to do, I can barely afford to pay my rent right now and I'm spending day after day trying to understand what I can do with JavaFX. Can you please give me ANY relevant information you have? I mean, is OpenJFX for commercial use, and JavaFX only for internal, non-commercial use? That seems to contradict the (non-downvoted) questions I've referred to. There is no thread of logic to which I can follow since everyone just directs me toward a lawyer. It's impossible to make progress! – Mathomatic Jan 09 '17 at 15:39
  • It's unlikely that anyone is going to provide you a definitive answer because - unless they are a lawyer and you pay them to do so - they are not going to want to take responsibility in the event that the advice they give is incorrect. I recommend you read the [Oracle official page](http://www.oracle.com/technetwork/java/javase/terms/products/index.html) which I think makes this all pretty clear. Note that OpenJFX is just an open source implementation of the JavaFX platform, so there is no difference at all between "developing for JavaFX" and "developing for OpenJFX". – James_D Jan 09 '17 at 15:43
  • @James_D, you're one of the people I was hoping would respond. I absolutely am not holding anybody responsible for the information they provide, but I must pick your brain about "there is no difference at all between "developing for JavaFX" and "developing for OpenJFX". What do you mean? Does that mean I can freely develop commercial apps with JavaFX, abiding by the GPL+class path exception. I'll read that page (again) but I won't likely garner any additional insight. What is your personal opinion about what it's saying? – Mathomatic Jan 09 '17 at 15:46
  • On [this post](http://opensource.stackexchange.com/questions/4491/how-to-comply-to-lgpl-with-maven-jar-packages?noredirect=1&lq=1) the user Phillipe says " I am effectively saying that you cannot use JavaFX in a commercial application unless you acquire a commercial license from Oracle as in the vast majority of cases the Oracle BCL does not license JavaFX for a commercial usage (and that to the best of my knowledge there is no free, libre or open source JavFX runtime available anywhere)". Whereas it seems you're saying the COMPLETE OPPOSITE - there is no difference between JavaFX/OpenJFX. ?? – Mathomatic Jan 09 '17 at 15:48
  • @James_D, I'm assuming since there is no difference between JavaFX/OpenJFX then I can freely distribute my app which uses JavaFX for commercial purposes. You are not giving me advice, and I do *not* hold you responsible for anything you say. Your words are gold to me right now. Why do you think Phillipe is saying something which seems to directly contradict all of the posts I've linked to above? Thank you sir – Mathomatic Jan 09 '17 at 15:50
  • There's a difference, at least in theory, between distributing your application (as a jar file, for example) which requires a Java/JavaFX runtime on the user's machine, and distributing an application bundled with the runtime (i.e redistributing the runtime along with your application). There is an additional difference if you modify the Java runtime which you then distribute with your application. If you are getting conflicting information, I can only recommend that you read the actual license (linked at the top of my previous link) and come to your own conclusion. – James_D Jan 09 '17 at 15:59
  • And note I didn't say "there is no difference between JavaFX and OpenJFX". I said there is no difference between *developing for* JavaFX and developing for OpenJFX. I.e. they contain the same API. They are certainly not governed by the same license. – James_D Jan 09 '17 at 16:03
  • Ok, thank you. Final question: If I have to end up using OpenJFX in order to distribute my app for commercial purposes, is it relatively straightforward to transition my codebase (20,000+ lines) from JavaFX to OpenJFX? My heart is in my stomach right now since I've invested a year into development of JavaFX ... if there's no difference in developing between the two, I assume it to be a rather quick transition? I'd love to hear your personal interpretation about whether you think JavaFX can be used freely in commercial purposes, just for educational purposes ;) – Mathomatic Jan 09 '17 at 16:08
  • 1
    I've found this: "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..." Sounds like I *can* bundle the JavaFX runtime with my commercial app, for free. It's sad that there's so much confusion regarding such an important topic. – Mathomatic Jan 09 '17 at 16:14
  • As long as you have followed the normal rules of programming against the standard java libraries (i.e your code only uses public API `java.*`, `javax.*` and `javafx.*`, **not** `com.sun.*`) then it should run fine against OpenJDK/OpenJFX in place of Oracle's JRE/JavaFX. In fact there is no "transitioning of the codebase" to perform. Just compile it, and then run it using OpenJDK/OpenJFX as the runtime instead of the standard runtimes. It sounds like you are pretty confused about the relationship between a Java application and a Java runtime. – James_D Jan 09 '17 at 16:16
  • You're right, and I'll invest today in understanding it. I've done a search through my code and found mention of `com.sun` only in 2 classes, both of which use `com.sun.jna` and are not my own classes: `JnaUtil.java` and `User32.java`. I'm assuming it's fine to keep these in my app even under OpenJFX. I won't take any more of your time, unless you have more to add. Appreciate your efforts – Mathomatic Jan 09 '17 at 16:22
  • jewelsea mentions [here](http://stackoverflow.com/a/28918759/4594511) about not relying on `com.sun` within JavaFX. Interesting – Mathomatic Jan 09 '17 at 16:26
  • @James_D, sorry to bother you again, but can you clarify whether there is a runtime that is available for commercial use, whether OpenJFX or JavaFX. The reason I ask is yesterday you said `Just compile it, and then run it using OpenJDK/OpenJFX as the runtime instead of the standard runtimes.` But then Phillipe is saying [here](http://opensource.stackexchange.com/questions/4491/how-to-comply-to-lgpl-with-maven-jar-packages/4586?noredirect=1#comment12826_4586) that: – Mathomatic Jan 10 '17 at 18:54
  • `there are practically no commercial usage possible of code that uses the Oracle BCL including the JavaFX runtime unless you buy a commercial license. The use cases are very narrow and unless you get a strong legal advice you expose yourself to audits from Oracle.` Does this mean I am stuck using OpenJFX if I want to distribute the runtime? What is your personal opinion? OpenJFX requires that I release my source code I thought since it's GPL :( So confusing! – Mathomatic Jan 10 '17 at 18:55
  • @James_D, it sounds like he's misquoting the BCL "COMMERCIAL FEATURES" section, and mistaking it for the entire JavaFX runtime: `A. COMMERCIAL FEATURES. You may not use the Commercial Features for running Programs, Java applets or applications in your internal business operations or for any commercial or production purpose, or for any purpose other than as set forth in Sections B, C, D and E of these Supplemental Terms. If You want to use the Commercial Features for any purpose other than as permitted in this Agreement, You must obtain a separate license from Oracle.` – Mathomatic Jan 10 '17 at 19:11
  • Cross-posted as https://opensource.stackexchange.com/q/4941 – PolyGeo May 20 '17 at 04:06

0 Answers0