Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
Seems that Oracle will change the license for the new version of java (>= 1.8, april 2019). Seems that the legacy version will continue to be free, as stated by Oracle post:
What happens to the Oracle Java SE releases I downloaded under previous licenses, such as the BCL?
You may continue to use releases you have downloaded under the terms
of the license under which you downloaded them. Legacy releases are
still available in the Java Archives. Note that older versions of the
JRE and JDK are provided to help developers debug issues in older
systems. They are not updated with the latest security patches and are
not recommended for use in production. Oracle strongly recommends that
you remain on an up-to-date version of Java with the latest
performance, stability and security updates.
This means that "production customer" that are using an older version of java in production (1.6, 1.7) are not affected by this license change?
How do you see the future of Java related to this license change?
Related to your experience openJDK can replace the "official" Java distribution without touch the code (naturally using same version)? Have someone succesfully swap the distribution for this particular license change?
This means that "production customer" that are using an older version
of java in production (1.6, 1.7) are not affected by this license
change?
Correct
How do you see the future of Java related to this license change?
Many projects have already started switching to OpenJDK and most likely, this trend will continue. The discussion at Differences between Oracle JDK and OpenJDK will help you understand more about it.
Related to your experience openJDK can replace the "official" Java
distribution without touch the code (naturally using same version)?
Have someone succesfully swap the distribution for this particular
license change?
Already answered in point#2 above.
Related
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed last year.
Improve this question
I have a Maven Project which was written using Java 8. If I try to run it in Intelliji using SDK 17 everything is red and it doesn't work at all. If I use Java 8 however it works. Why doesn't it work with SDK 17? It should be compatible.
Errors in my Code
Those errors are JavaFX related, not Java in general. JavaFX has never been a standard part of Java SE.
You need to either:
Add an implementation of JavaFX to your project. Add dependencies to your project for the OpenJFX library. That code base for that implementation is housed as a subproject on the OpenJDK site, and is co-led by Gluon and Oracle.
Use a Java implementation that includes the OpenJFX library. At least two vendors offer an edition of their JDK product with OpenJFX: ZuluFX by Azul Systems, and LibericaFX by BellSoft.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I have couple of projects using JDK 1.8 in production. However Java is paid from January 2019 onwards. Is my problem solved if I migrate my projects to OpenJDK 1.8 because it's open source?
As far as I know, it concerns only the Oracle Java APIs.
OpenJDK and OpenJFX are largely independent (besides getting contributions from Oracle).
As general Oracle Java was a bit smarter than the OpenJDK (on Linux), the entire outcries are a storm in a glass of water: it makes a (ill guided) sense to let Oracle be paid for its development effort.
The thing to do, is trying out the OpenJDK, and taking notion of com.sun classes.
You might need to look for new versions of your typical server or framework, that might rely on com.sun.* classes.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I want to implement a java desktop-application using eclipse and when I click on new project I have to choose the JRE version (J2SE 1.2-1.5, JavaSE 1.6-1.8). My question is: what is the best version that I would choose? And if I decided to work with jre1.8.0 would other computers that support earlier JRE versions (e.g jre1.6) be able to run the application on their machines?
Generally, you should use the newest version of Java for your development.
If your client is restricted to an older JRE, then you can set your compiler level. This is a separate setting from your JDK version (right click your project, go to properties, then Java compiler). Newer versions of Java can be set to create code that will work in older versions of Java.
You can use the latest version. Every new version will support all the features of old version. I would go for jre 1.8.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm developing an application that I plan to publicly release, or at least share with a group of people. The problem that I am facing as a developer is compatibility. On my machine, I am using the new Java 8, but I am afraid to use its new features, and in fact, I'm even afraid to use the new features in Java 7, like try-with-resources, in fear that the users will not have an up-to-date Java version, and consequently, will not be able to use my application. For example, my school's computers still use Java 6.
First off, am I correct in thinking that? Or can code compiled with a newer JDK run on a machine with an older JRE? If I am correct, is there an established "rule" or standard for compatibility? Something like, "Make sure your code is compatible with a JRE that is two versions old!" Or is it purely a matter of the developer's judgement of when new features should be utilized for a released work? And just for emphasis, I am talking about just running the program. The user will never have to compile it.
I know this is a bit open ended, but this is the best place that I could think of to ask.
Thanks.
First, you can always specify the version of Java that you want to support by compiling it with the -version flag. This means, since you're using Java 8, you could always force your code to compile down to a lower version (that is, Java 6).
To your point about older Java versions - yes, you'll likely run into that. A lot of people don't update their Java version for one reason or another. But, this is where you have to make a decision: do you choose to support their version, or do you choose to support another version? This particular part is open-ended, but depending on what you ultimately want to use in your code (diamond operator, try-with-resources (which is actually very nice), NIO), then you'd want to use the version of Java that works well with you and with what you want to support.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I want to download and try an Open-Source OS (Emulation) written in Java. So, I searched and download the, arguably, most famous one I found, which was NACHOS 5.0j.
I have just installed a fresh Ubuntu 10.04 LTS and installed the open-JDK 1.6 through apt-get and then installed eclipse in a similar manner.
After following the readme in NACHOS, I fired terminal, and used gmake (make), and got a bunch of errors and warnings. The one that's bothering me the most is:
as of release 1.4, 'assert' is a keyword, and may not be used as an identifier
(use -source 1.3 or lower to use 'assert' as an identifier)
Debug.assert(isReadyForApply);
Problem is, I tried downloading another open-source OS called JX, and had a similar problem.
Any help in this issue is appreciated! Any other ideas on where to start learning about operating systems and Java is even more appreciated! (But something practical.)
I think you need to add a argument -source 1.3 while compiling or running that OS
I found following information from web, basically, you should use java 1.3.1. it is open source, and you can modify the source code to make it run under JDK1.6 if you like.
The Java version of Nachos only
supports Java 1.3.1, as the security
manager and set of reserved keywords
has changed in later versions.
Instructional machines already have
1.3.1 installed. For remote users, you can download 1.3.1 here:
http://java.sun.com/j2se/1.3/download.html
. If you are curious to see what
version of java you are using you can
run the following command "java
-version". We cannot stress strongly enough that you should not use java
1.4 or java 1.5. You might run into transient errors that will not show up
as warnings or errors during compile
time.