10 comments

[ 6.1 ms ] story [ 27.3 ms ] thread
This article does a nice job of setting up a straw man and summarily knocking it down. The original article on The Register states that the issue arises with people using Java SE Advanced features without realizing they are licensed separately from Java SE itself, particularly on Windows which (according to that article) has one installer which installs both (thus making it easy to inadvertently use JSE Advanced features).
Its not exactly clear though, as far as I can tell "commercial features" just means JRocket Mission Control (which is a very cool bit of kit.... debugging production systems remotely with negligable performance hit, seriously you know you should be paying for that)

But yeah, the OP is a perfect example of a strawman.

Not just windows though afaik, JRocket MC is integral to the oracle JVM.

The situation is not that simple. For example, the borderline between "general computation" and "embedded" as it is defined by Oracle is not clear at all.

They say if your app controls some external "hardware", it makes your system embedded. Does sending a command over a serial line to an actuator from a Java app makes it embedded? Apparently yes. How about Bluetooth devices? A joystick? Controlling a router?

Now, how about a rack stuffed with ARM units, are those embedded? They might be quite easily, depending on how Oracle interprets it.

One installer, which I get for free, installs stuff that the creator of the installer says I'm supposed to have to pay for? How is that my problem?

Note well: IANAL. But I think Oracle would have a very hard time forcing payment. "Stop using it, or else pay up" is within their rights, but will still be an incredibly negative PR mess. "Uninstall the part that was supposed to be pay-only, or else pay up" is perfectly reasonable.

>They say if your app controls some external "hardware", it makes your system embedded.

This is a lie and it is absolutely not what "embedded" means. Why are you spreading FUD? What do you have to gain?

To shed some actual truth on this: Java SE and Java SE Embedded are two completely different products. They have nothing to do with another. There is no mechanism by which Java SE can become "embdded." It does not depend on what you do with Java... Java SE Embedded is a specific bag of bytes. For more information on Java SE Embedded see eg [1] and [2].

It's tiresome to see so much FUD being deliberately spread about this but, again, I come back to the unfortunate decision by Sun execs to brand everything "Java."

[1] https://blogs.oracle.com/jtc/entry/java_embedded_pricing_pub...

[2] http://www.oracle.com/technetwork/java/embedded/overview/ind...

By no means my intention was to "spread FUD", but it rather was a legitimate concern, since I'm working on a side project which could be directly affected by these issues.

Perhaps I'm just not understanding their language correctly, please help me since you seem to be more versed in Java licensing than I am.

1. Would you kindly explain the meaning of the passage on the Oracle's own FAQ page saying literally this: "If Java SE is bundled as part of a dedicated solution that involves or controls hardware of some kind, then it's likely an embedded application and is subject to modest royalty payments.." (here - http://www.oracle.com/technetwork/java/embedded/embedded-se/...)

It doesn't say "Java Embedded", it explicitly says "Java SE".

The next Q/A there says "developing with Java SE embedded or non-embedded purposes". Note how it says "embedded or non-embedded purposes" not "Java SE Embedded".

My understanding (from what I read there) is that if I use Java SE for "embedded purposes" I must use Java SE Embedded, which is not a completely different product, but seems to be nothing more than a paid extension of the former.

2. Not directly related, but the page you referred says "$300 * .0075 * 2 * 1.19 = $5.355". However, RPi3 is 4-core, not 2-core, which means something in the $10+ range if I'm targeting that board. Am I wrong here? If not, that's a bit too much, especially comparing to the price of the board, don't you think?

Thank you.

EDIT: yes, and the goal of the project I mentioned is specifically to control some hardware.

I won't give you legal advice but I would think it should be clear to anybody that the embedded use case refers to distributing Java as part of a combined hardware+software solution. None of this is new or even particularly controversial. Everybody knows that Java Embedded, and especially the highly customizable embedded jvm, is a commercial product subject to royalty payments. None of that, BTW, has stopped countless people from shipping free products that run on Pi and/or use Bluetooth. Again, this idea that you're promoting, that if you use Java SE to "control hardware" (as if software can do anything else) or you use Bluetooth or "ARM Units" is complete FUD. If you really are curious there are plenty of resources out there around Java SE Embedded. The naming does make this more confusing than it should be but you can start at [1] and if you like you could even reach out to Douglas White himself (his email is easy to find and he seems more than ready to speak to this).

[1] https://blogs.oracle.com/java-platform-group/entry/java_se_o...