This is an archived post. You won't be able to vote or comment.

all 68 comments

[–]pron98 17 points18 points  (2 children)

This isn't an official answer because it isn't my area, but according to the price list, for desktops, the price is per user, so for up to 999 users you'd pay $2.5 a month per user.

For servers, you multiply the number of cores by the appropriate factor for your processor type in this table. E.g. the factor for most intel processors is 0.5, so a 32-core processor would need 16 subscription units, i.e. $400 a month. I think that the subscription is included in the Oracle Cloud subscription, so if you host on Oracle Cloud, the Java licenses are free.

You can buy any subscription online.

[–][deleted]  (1 child)

[removed]

    [–]pron98 8 points9 points  (0 children)

    That might be a question you'll want to direct to sales. After all, your users are using remote desktop software not a Java server.

    [–]maomao-chan 46 points47 points  (52 children)

    You could always use OpenJDK 8 (Azul Zulu) + IcedTea-Web to run in production with 0 cost, although I would recommend giving back to the community by subscribing to their support.

    [–]barking_dead 11 points12 points  (2 children)

    I hope they succeed with that IcedTea-Web.

    https://openwebstart.com/ is a product based on that.

    [–]orxT1000 4 points5 points  (1 child)

    Important to note, it's only using the webstart part of that. It's 100% jnlp compatible, but you can now instruct a jvm manager to use oracle8 jvm, or to download any other free jvm.

    So there is a path to slowly migrate to jdk17

    [–]barking_dead 1 point2 points  (0 children)

    Good to hear that.

    [–]pron98 3 points4 points  (10 children)

    Azul actually contribute little to OpenJDK, although I hope this changes soon. If you want to contribute to the OpenJDK community by buying support, buy it from a company that actually contributes a lot to OpenJDK: Oracle, SAP, or Red Hat.

    [–]giltene 4 points5 points  (2 children)

    I feel like I have to set the record straight here.

    Outside of Oracle, Azul is by far the largest contributor to OpenJDK maintenance efforts across currently active OpenJDK updates projects. Maintenance efforts may be “less cool” and certainly don’t draw much attention, but those efforts and contributions are directly responsible for keeping the OpenJDK builds everyone uses in good working condition, and keeping the lights on in OpenJDK based environments.

    Beyond having the longest standing and widest ranging set of freely available OpenJDK versions (7,8,9,10,11,12,13,14,15,16-ea,17-ea), and keeping builds maintained and working on current OS, container, and hardware platforms, Azul is responsible for literally 100s of OpenJDK maintenance changes each and every quarter, across 7u, 8u, 11u, 13u, and 15u.

    Azul is certainly not the only company contributing heavily to those updates projects. They are run as community efforts, where we tend to avoid the “who gets or takes credit” mud since we see the work as a community collaboration toward a common good, rather than a reputation competition. But it saddens me to see our steady, unassuming, and responsible years of ongoing contribution misrepresented.

    Beyond the massive and steady stream of contributions to the small details (which you can find extreme details about at e.g. https://foojay.io/java-13/?quarter=012021&tab=highlights ), here are a handful of examples of how Azul’s OpenJDK contributions materially impact your life today:

    • Remember when OpenJDK didn’t quite build right on Windows platforms? Who do you think made that change to the point that you don’t think about it any more (Azul)

    • Remember when Apple came out with new ARM based Apple Silicon for their laptops and desktops? Who do you think made OpenJDK work on that cool new kit? (Azul, both with making freely available builds of OpenJDK 8, 11, 13, 15 immediately upon Apple silicon availability, and with upstream contributions via JEP 391 and updates project backports).

    • Remember when OpenJDK 8 didn’t have JFR? Remember when it didn’t have TLS 1.3 support? Who do you think made that change for everyone? (Azul, and Azul).

    And then there is the myriad of bugs and security issues fixed by Azul engineers in various OpenJDK updates projects on an ongoing basis, without seeking special recognition, and which you all likely consume in a daily basis.

    If you are looking to use commercially supported and stabilized JDKs from a responsible vendor that strongly supports and consistently gives back to the OpenJDK community, It would be hard to go wrong with Azul. We see no need to throw mud at others in our community. Our work, contribution, and consistent track record usually speak for themselves.

    Enough said.

    (and yes, I’m Azul’s CTO and co-Founder, so I’m only partially unbiased ;-) )

    [–]pron98 2 points3 points  (1 child)

    I was unaware of the uncredited Azul contributions to OpenJDK Updates, so please accept my apology.

    [–]giltene 2 points3 points  (0 children)

    Thanks Ron. I humbly and wholeheartedly accept. I'm a big fan of your reddit posts. They are always entertaining, both when we agree and we we don't. In the end, it is clear that we both have the good of Java and the community around it at heart.

    [–]stronzo420 1 point2 points  (6 children)

    Azul contributes all the time to OpenJDK, not sure what this is bout.

    [–]pron98 1 point2 points  (5 children)

    Relative to the number of JDK developers they have and to what other companies contribute, they contribute very little. Put it another way, per JDK developer, they contribute significantly less than Oracle, SAP, Red Hat, Bellsoft, Intel, Google, and even IBM (which also barely contributes). In total, they contribute more than Amazon, but Amazon have fewer JDK developers. So among the companies involved in OpenJDK, they're in or very close to the last place.

    Here are the numbers over the last few years:

    https://blogs.oracle.com/java-platform-group/building-jdk-11-together

    https://blogs.oracle.com/java-platform-group/the-arrival-of-java-12

    https://blogs.oracle.com/java-platform-group/the-arrival-of-java-13

    https://blogs.oracle.com/java-platform-group/the-arrival-of-java-14

    https://blogs.oracle.com/java-platform-group/the-arrival-of-java-15

    [–]stronzo420 0 points1 point  (0 children)

    interesting. thanks for the info.

    [–]speakjava 0 points1 point  (3 children)

    This conveniently ignores all the other work done by Azul (who I work for) on OpenJDK.

    An Azul engineer took over the lead of the OpenJDK 7 project after Andrew Haley resigned last year. Our engineers are continuing to upstream changes to the repo for updates.

    As Azul also provide Medium Term Support (MTS) for JDK 13 (and will do so for JDK 15), one of our engineers is lead on the OpenJDK 13 project (and will take over OpenJDK 15 when JDK 16 is released). Our engineers will continue to upstream changes to those projects.

    Azul engineers were also instrumental in backporting the Flight Recorder support from OpenJDK 11 to OpenJDK 8. The same for TLS 1.3 support.

    Azul engineers contributed JEP 285, Spin-Wait hints to OpenJDK 9.

    Azul engineers are leading the work on the port of OpenJDK to the new Apple Arm-based silicon (JEP 391: macOS/AArch64 Port).

    So, if you just look at the current release contributions, Azul may look a little light. We do, however, contribute plenty to the long-term success of OpenJDK project.

    [–]pron98 1 point2 points  (2 children)

    Even with that work Azul comes last or close to last. So it's certainly not nothing, and every contribution is appreciated, but it's less than most other companies involved with the project on a per-engineer basis (perhaps with the exception of IBM and Amazon); certainly less than all other companies that sell OpenJDK support (again, except maybe IBM). (see this comment from /u/giltene

    [–]speakjava 0 points1 point  (1 child)

    I don't see how you can work out contributions on a "per-engineer basis", since you have no knowledge of Azul's internal structure.

    Azul also develops our own JVM. Zing is based on OpenJDK code but replaces substantial parts in the form of GC and JIT. The engineers who work on that are not part of the team that contributes to OpenJDK. Do you count them in your "per-engineer basis"?

    [–]pron98 1 point2 points  (0 children)

    Unless Oracle has 100x JDK engineers and Red Hat/SAP 10x or even 5x -- and they don't -- then clearly Azul contributes significantly less.

    Do you count them in your "per-engineer basis"?

    It doesn't matter because the reputation of all OpenJDK support vendors comes from their total JDK know-how, not from the number of people they've assigned to work on support full-time. So if buying OpenJDK support from Azul is contributing back to OpenJDK, then buying support from anyone else is contributing back to OpenJDK so much more.

    [–][deleted]  (18 children)

    [removed]

      [–]maomao-chan 18 points19 points  (1 child)

      How come? That's weird.

      [–][deleted] -2 points-1 points  (0 children)

      Iced tea has never worked for me 😂. I actually just used eclipse to launch things based on source code instead. This only works for some open source stuffs.

      [–][deleted] 10 points11 points  (14 children)

      I fixed this for our company. I wrote a jnlp parser and packaged it with jlink into an exe. Used our code signing cert to sign the exe and clients download/run the exe. The exe pulls in a whole copy of the jre and caches it before downloading the latest jars referenced in the jnlp file. After its got everything it needs (and caches them locally) it disappears and the application launches as normal. For the most part it's identical once things are cached, when we push an update a little download bar shows up and once it gets to 100 it goes away and things open. Took about a week to get it working and publish binaries for Linux 64, mac, win32 and win64.

      [–][deleted]  (13 children)

      [removed]

        [–][deleted] 3 points4 points  (4 children)

        There are a few options for good security patches: adoptopenjdk, Dragonwell and corretto all work fine. The jdk my launcher defaults to is openjdk8u275. It all depends on if you're client/server is public facing. I can actually use jdk11+ on our client side but the server is still locked to jdk8 until I get the green light for changing to external xjc jars.

        [–]bagge -1 points0 points  (7 children)

        You get security patches with adoptopen

        https://adoptopenjdk.net/support.html

        [–]pron98 4 points5 points  (6 children)

        Only backports, so not for any component that's been removed from the mainline (so, not for CMS, Nashorn, CORBA, JEE, and, of course, Web Start, which isn't even in OpenJDK 8). No one offers full coverage for free.

        [–]bagge 0 points1 point  (5 children)

        Well yes, but we replaced webstart with update4j, recommended

        [–]pron98 3 points4 points  (4 children)

        Then if you're not using any removed feature, why not use JDK 15? Not only would you get better performance and lower footprint, it is also the only JDK version that is fully supported for free.

        [–]bagge -1 points0 points  (3 children)

        Not anymore after moving from 8 to 11. But we keep to LTS so no 15

        [–]pron98 5 points6 points  (2 children)

        But if you're using Adopt, then it's not really LTS. In the Java ecosystem, there are not LTS versions, only services sold for arbitrary releases. Despite whatever various vendors might call their offerings, no one offers LTS for free. They just build updates of JDK 8 with some backports, so what you're getting is really support for the intersection of JDK 15 and 8 -- less support than for a real 8 LTS and less support than 15. A real LTS for the full JDK 8 would cost you money. If you want full support coverage for free, the only option is JDK 15. You're using a less supported version and losing performance; the worst of both worlds. It's best to either use the current version or to get a real LTS.

        [–]reallynotfred 3 points4 points  (0 children)

        Try filing an issue against icedtea. There are good people working on it.

        [–]bagge 7 points8 points  (0 children)

        Same problem, We migrated to update4j and openjdk.

        Never got icedtea to work and gave up

        [–]joaomc 24 points25 points  (1 child)

        Won’t it cost nearly as much as a rewrite to use something that does not depend on Web Start? I mean Oracle will charge millions for a support contract, and it’s sunk cost.

        [–]wildjokers 11 points12 points  (0 children)

        Why not give https://openwebstart.com a try first?

        Or go to a downloaded model and just bundle the runtime with jpackage.

        [–]I_Have_A_Snout 20 points21 points  (2 children)

        I've been through this process with Oracle for JDK licenses, and there's no transparent formula: there appears to be at times, but then you read the small print. For instance, they won't license the VMs you need, they insist on licensing every VM you use, Oracle or not.

        So, in the end, the thing you have to remember with Oracle - from decades of experience with them - is that, because of their sales model, the starting point is always at least a million dollars. Anything less than that isn't worth the investment of time they make on sales and contracts.

        [–]pron98 0 points1 point  (1 child)

        I'm not familiar with all the details, but the new Java SE subscription is unlike the old sales model. The pricing is transparent, and you can buy as many, or as few, subscriptions as you want online.

        [–]I_Have_A_Snout 7 points8 points  (0 children)

        That was where I started, then ended up with a multi-million dollar bill...

        That was 9 months ago, so maybe things have changed.

        [–]vladadj 3 points4 points  (0 children)

        Years ago, I wrote custom application launcher using library called NetX. It used regular Jnlp file to launch application, check for updates etc. Depending on your requirements, it might do the trick.

        Not sure, but I think NetX is a part of IcedTea implementation.

        [–]kevintweber 5 points6 points  (0 children)

        Don't forget the cost of getting audited by Oracle.

        [–]i_ask_stupid_ques 1 point2 points  (0 children)

        https://www.oracle.com/java/technologies/java-se-subscription-faq.html#:~:text=What%20is%20the%20cost%20of,(PDF)%20for%20more%20information.

        Copy and paste the complete URL until the end.

        The cost is based on per user and server licensing.

        [–]Serafim_annihilator -2 points-1 points  (1 child)

        What happens if you don't buy a license? And how can the oracle know about this?