I know that Oracle JDK 7 and 8 support hard float ABI on ARM Units. But I havenĀ“t found any information about the OpenJDK 7 supporting this.
The clear implication of this page is that you can cross-compile OpenJDK 8 with Hard Float support. (See the example commands towards the end ...)
The page doesn't mention specific Java versions, so given that Oracle JDK 7 supports it it is likely that OpenJDK 7 will as well.
Related
Here's the thing:
Me and my teammates are now working on a Java project, but I'm almost new to Java development. The thing is that I recently updated my local Java version to 15.0.2, however, they created the project with JDK 1.8 (Java 8 perhaps?).
We are worried that this might cause some conflicts since our Java versions are not corresponding, and I'm also not familiar with the relationship between Java version and JDK version (Just like Java 8 and JDK 1.8).
Could somebody give me some explanations of this? Thanks a lot!
We are worried that this might cause some conflicts since our Java versions are not corresponding ...
Yes, you could run into problems:
There are significant differences in the Java language and Java standard class libraries between Java 8 and Java 15. Code written for Java 15 using Java 15 may not compile on Java 8.
Java 8 and Java 15 tool chains produce compiled code with different classfile version numbers. Code compiled for Java 15 will not run on a Java 8 platform.
It is possible to work around these problems, but it is much simpler if all project members use the same Java version.
If you are new to Java, my recommendation is to install and use Java 8. Note that it is possible to have different versions of Java installed simultaneously, and use different versions for different projects.
... and I'm also not familiar with the relationship between Java version and JDK version (Just like Java 8 and JDK 1.8).
It is pretty straightforward. Java 8 is JDK 1.8, Java 9 is JDK 1.9, and so on. This started with Java 5 / JDK 1.5
The weird numbering is a result of a Sun Management / Marketing decision when naming Java 5:
"The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE."
Source: https://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5.0.html
(You could also say that the people who made this decision didn't understand the principles of semantic version numbering.)
I'm using JBoss-4.2.3.GA with Oracle JDK 1.5.
However, I want to move to OpenJDK. So, what are versions of OpenJDK which integrated with the JBoss-4.2.3.GA?
Not with ancient Java 5. As per OpenJDK versions the OpenJDK project started with Java 7 and was retrofitted into Java 6 but there is no version for Java 5. OpenJDK is an almost exact copy of OracleJDK since Java 8, previous versions have known issues e.g. worse 2D graphics performance.
You could try updating to Java 6 which is supported as per JBoss 4.2.3 release notes but Java 6 is officially dead for two years now. Investing into dead technology is counterproductive.
Your best course of action is to update JBoss 4.2.3.GA to something recent, this version was released over ten years ago!
As far as I know there are no plans from oracle to ship java for 32 Bit - but maybe I misunderstand the situation.
If I'm correct - what do we all do if we need to support 32-Bit libraries (dlls)? And whats about 32 Bit OSes out there?
Currently this seems to be a huge impact in the future but as I said - maybe I'm wrong.
Fact is that we can't download a Java 10 runtime in 32 Bit as there are only 64 Bit Download-Links.
Had a similar issue, just with Java 11. Eventually, I found a 32bit JDK and JRE for Java 11 on https://adoptopenjdk.net/ (for the Hotspot JVM). With the 32bit JDK, I successfully connected to a 32bit dll. I hope this is useful for others who face a similar situation.
Oracle is not the only party building and distributing OpenJDK.
For example Azul maintains, but does not certify as TCK-compliant, 32bit windows builds as part of their Zulu project.
There is no 32-bit Java 10 distribution from Oracle. And there will be no Java 11 distribution as well. There are a few companies which offer a 32-bit support though (like Azul). However, I recommend continuing using Java 8 32-bit. It has official support from Oracle and it will be maintained until January 2019.
For RHEL, redhat still offers 32bit java-11 in their repository:
java-11-openjdk-devel.i686 1:11.0.6.10-1.el7_7
I've seen three possible Java version notations, e.g. Java 8 may be written in the following ways:
Java 8
Java 8 SE
java 1.8
Which is the correct one? I mean which one is usable in academic writing?.
Similar problem with JDK and JRE
If you are writing about Java Standard Edition, then the correct notation will be: Java SE 8, the same rule applies for Enterprise Edition (Java EE 7).
Java 8 and Java 1.8 are the same and Java 8 SE is standard Edition. Java 8 is good for academic writing.
The Java naming and versioning convention is unfortunately complicated. In fact, java versioning has its own Wikipedia page.
Versioning
Java started off its life in 1.0 and 1.1 in the mid 90s. When Java 1.2 was releases it was branded as "Java 2". We had to live with the next few releases with this dual numbering scheme until Java 1.5 when the "1." prefix was dropped and 1.5 officially became 5.0.
Java 8 being referred to as "Java 1.8" is an artifact of this history.
Java Editions
Java SE, the Java Platform, Standard Edition (also known as J2SE until Java 5) is the Java platform used for java desktop and server programs. Java SE is what most people mean when talking about Java.
Other "Editions" are Java ME (Micro Edition) which is a cut down version of Java for embedded devices (including phones) and Java EE (Enterprise Edition) which provides extra libraries on top of Java SE including Java Servlets, EJB, JMS and others used in Java Application Servers.
JRE vs JDK
JRE: Java Runtime Edition
JDK: Java Development Kit
Simply, the JRE is able to run Java progams; the JDK is used to build Java programs.
See Also
Why java is now known as java2?
What is the difference between JVM, JDK, JRE & OpenJDK?
Three of them are valid notations. There is no right or wrong all of them are used.
I don't think using either one of the options should make any difference. All convey the same thing and anyone using Java will know this.
However if you are concerned about academic writing then you can use
Java SE 8
and give reference as Wiki link :)
As per the java spec, java versions can be denoted as java 1.x.x
Java Standard edition (correct notation is Java SE 7)
JDK version can be represented as JDK 1.x.x, similar to JRE as x.
(If the version of JDK is (1.7.0) then the JRE version to be 7)
I know when Leopard came out everybody (well, everybody that was a Java developer and cared enough to do development on a Mac) was pissed that there was no Java 6 SDK support. I know somebody provided some kind of hack way a few months after Leopard was released, but I could have sworn that I read sometime later that Apple and/or Sun finally put out an official version of the Java 6 SDK.
So now a year and a half later I am finally interested in doing some Java dev on the Mac (thank Google App Kit for that). But when I go to Apple's Java site... all I see is stuff about Java 5.
So, can I do Java 6 on a Mac?
See also: Installing Java 6 on Mac OS
Yes, JDK6 is available, and it is quite nice, for example it supports DTrace, which otherwise you only get on Solaris.
The main drawback is that Apple is very aggressive in deprecating older hardware (and OS versions). Java6 will never be released for Mac versions before 10.5, and only works on 64bit Intel. That also kills native 32 bit libraries, such as SWT/Carbon, which is what Eclipse uses (they need to move to Cocoa now).
Update: Snow Leopard apparently has Java6 for 32bit Intel, too (in addition to 64bit).
http://developer.apple.com/java/ (which is only for 64-bit Macs)
http://landonf.bikemonkey.org/static/soylatte/ (SoyLatte, a separate Java 6 port).
Yes, JDK6 is available.
However, some versions of Eclipse do not support it. There is a new one (based on Cocoa) that should but it is not officially available.
You can but you have to be very wary of Apple on this one. Sun released JDK 6 in December 2006. Apple released Java 6 for MacOS X a year later.
Why the delay? It seems that integrating the new Look and Feel was the answer but we don't have an official reason.
Now if Java 6 was important to you at the time this would've been (and was) a big deal.
As other answers mention, support for certain hardware and libraries can also be problematic.
windows and Linux are (imho) still the preferred Java development platforms. If it ever becomes critical you can always do Java development on a Mac in a VM however.
Partly. Apple released its version of Java SDK 6 a few months back. But there are still some functions which are not available on Apple's SDK 6 which exist in Sun's Java SDK 6. I don't know why this is so.
For e.g., after Unisys's patent on GIF format expired, Java included the capability to write image files in GIF format in SDK6. Yet, you still can't write GIF files on Apple's SDK.
http://developer.apple.com/java/
Looks like you can.