OpenJDK now available for Windows
developers.redhat.com
developers.redhat.com
So presumably I can't distribute this installer to my users or even have them install it themselves for production purposes?
I would also like a simple ZIP file please with no installer. I like to set up some software with an environment variable that points to which JRE / JDK that I want it to use.
Example Use Case:
One Windows OS. Several smallish Tomcat servers. Each Tomcat server has environment variables that point to the CATALINA_HOME (a base unpacked tomcat folder), and a JAVA_HOME which points to a JDK or JRE.
I can stop a tomcat service. Remove it from Services control panel. Change some environment variable pointers in a .BAT file. Re-add it to Services control panel. Then restart the service. Now that server might point to a different Java and/or different Tomcat release.
Similarly Eclipse. I don't "install" it. Just unpack it and create a shortcut to it's launcher. Set its configuration file to point to which of my various Java versions I want it to use -- including multiple vendor's implementations.
Red Hat: I don't WANT to "install" a JDK on Windows.
You should be able to extract an msi with the right msiexec command line switches.
Elsewhere in this thread I discovered:
https://github.com/ojdkbuild/ojdkbuild
And I already knew about:
http://www.azul.com/downloads/zulu/
The more OpenJDK folders I have to test against (on both Linux and Windows), the better. Just change environment variables.
They integrate with windows GPO and it can be rolled out everywhere, among other things.
http://openjdk.java.net/legal/gplv2+ce.html
Specifically: "You may not impose any further restrictions on the recipients' exercise of the rights granted herein."
"As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module."
there's also a github repository with openjdk 8 windows builds availabe as zip : https://github.com/ojdkbuild/ojdkbuild
OpenJDK binaries are released under the GNU GPL v. 2 with classpath exception.
Project icon is taken from Nuvola icon set, it is released under the GNU LGPL v. 2.1.
Build scipts are released under the Apache License 2.0.
Other sources and binaries in this project (cygwin, freetype etc.) are released under their corresponding licenses.
It's like nvm (for Node.js) but for installing JDKs.
https://github.com/caskroom/homebrew-cask/blob/master/Casks/...
And maybe redHat will also release a JDK6 build for Windows for the poor souls (cough) who are forced to deploy with good old JDK6 even though it is unpatched.
You can do a diff using java -XX:+PrintFlagsFinal
(they get a Windows 7 PC from IT, which they can use as-is or load Linux onto, on a "you break it we wipe it" support basis.)
If OpenJFX switched to Maven or Gradle, Inc. made their product less janky to work with it could easily be included in the OpenJDK packages - you can still just build it yourself and toss the .jar in the OpenJDK directory and it will work, at least.
Oracles Java contains a number of "commercial" stuff that costs money. So in theory, you could download the standard Java SE and run certain tools or the standard tools with certain command line arguments and suddenly owe Oracle a shipload of money. And I am talking a lot of money, like $40.000 for a single machine. And yes, they have started using SDK analytics to map potential "costumers" and sending them huge bills:
http://www.theregister.co.uk/2016/12/16/oracle_targets_java_...
Someone suggested migrating to OpenJDK which does not (for most parts) include these tools and have a more sane license. The problem is that OpenJDK does not come with a Window installation from a reputable source.
TL;DR: Larry Ellison needs a new yacht and since Google is not paying he is now sending his lawyers after ordinary folks who thought Java was free.
I find it deliciously ironic that Oracle's products are no longer compatible with Solaris and ZFS because they won't follow upstream... because they don't understand they aren't upstream anymore.
Java needs the same treatment.
Hence why there is a parallel OpenJavaFX project.
Or GUI rendering code, hence why JetBrains has their own fork for those that don't want to use commercial JDKs on GNU/Linux.
Yes, and in fact OpenJDK is the reference implementation nowadays. You could also check out the IBM JDK if you want to move off of Oracle.
It is about 1M+ lines of highly optimized C/C++ code and 4M lines of Java code. So it is not like a package or a library that a dozen or contributor manage well. And Considering payment is the core issue here I do not know how highly paid people will be made to work on JDK.
They will be employed to work on the JDK: there are plenty of companies that are already involved in Java and employ people to work on it outside of Oracle.
Hypothetically IBM, Red Hat, Google and the other non-Hotspot VM makers could band together and fork Java successfully - hell, a even a bank or 3 will want in on the action. They will have to name it something else and prepare for the inevitable epic lawsuit, but funding people to work in the JDK will nor be a problem.
IBM sees future in Swift LOB apps and Go on blockchain related efforts. Also with open sourcing of their own J9 components they would be even less inclined to participate in OpenJDK fork or some such
Redhat sees Ceylon on apps side and with all this containerization thing going on, may be quite a bit of Go.
Google of course is betting big on Dart on apps side and Go on infra side.
For Banks I do not see any issue at all to either pay Oracle or Azul to get commercially supported JDK. Their main unique requirements are either high-perf GC(Azul) or high perf collections which they anyway write for themselves.
Dart is dead (or at least dormant). Google is pushing MS'ss Typescript very hard with Angular 2.
The definition of "general purpose computing" is confusing to me, I've no idea where full computers/desktops that control specific devices would fall under this definition.
Also, one particular company with tens of thousands of installations was hit by Oracle lawyers because a software they bought from third party had for some reason this flag enabled.
How do I figure out if we are at risk? We use the apps in-house only.
Openjdk doesn't have all the same features as the oracle jdk (javafx etc)
Not that it much matters, since Chrome doesn't support the NPAPI plugin, and FireFox is expected to drop support early in the new year, leaving Applets an essentially IE only thing.
http://openjdk.java.net/jeps/277
There was a session at Java ONE about a set of API that will be gone in Java 10 after this gets introduced in Java 9.
I haven't used it for awhile now, but I used to work on a serious Groovy code base. It's out of it's league now. Once Kotlin's scripting story gets rolling it should eat the rest of Groovy's lunch.
As the article goes on, it becomes clear that a modern GC managed system is no simple thing. As you start to add all the choices and tuning you end up re-inventing the JVM runtime.
Any program of sufficient complexity eventually ends up having GC.
Java may be too resource hungry for trivial programs. For large programs Java is an industrial strength runtime platform. Or I should say the JVM is. You don't have to use the Java language. You can use a number of languages that compile to JVM bytecode.
While some new languages have prettier syntax and interesting constructs, Java remains a viable platform despite it's warts. I would guess more production code today (even new) is still written in Java or c++ than anything else.
Java gets a lot of flak around here but its really not so bad when you use modern versions (JDK 8) with modern libraries (Apache Commons or Guava). Even Eclipse is surprisingly good now, defying my expectations years ago that it would remain buggy and hard to use forever. I learned Java in the last year and it's now my favorite language besides c#.
A large code base written in a language that does not have tooling to do automatic refactoring cannot be maintained for as long a time. Gets scrapped sooner and rewritten. Especially in dynamic languages. A dynamic language may be much faster to prototype and get your initial code base written. But just try maintaining it for ten years. Twenty. Etc.