Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java compiler's target version "jsr14" with JDK7/8

Tags:

java

javac

java-7

Can anybody tell me the jsr14 target option of javac will be still available with JDK7/8?

Say,

$ javac -source 1.5 -target jsr14 Hello.java
like image 306
Jin Kwon Avatar asked Oct 30 '10 12:10

Jin Kwon


2 Answers

We are heavily using -jsr14 in OSGi because it allows us to use generics in our API but still deploy on 1.4 environments, which are still popular in embedded. Unfortunately, they made JDK 7 not backward compatible with Java 6 and 5. Javac 1.7 ignores the generic information that is actually present in the JAR files. There is fortunately no problem at run-time as this info is ignored anyway. And it is not as if this was some undocumented feature ...

Unfortunately, people at the front often have very little regard for the people that cannot just update to the latest and the greatest. Guess Oracle really does not care about the embedded markets anymore.

We will likely now have to ship two JARs, one for the embedded and one for JDK 7. Sucks.

This is the bug report we filed: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7078419

like image 162
Peter Kriens Avatar answered Oct 13 '22 05:10

Peter Kriens


The latest OpenJDK source bundle (openjdk-7-ea-src-b130-18_feb_2011.zip) still contains the flag in the source (langtools/src/share/classes/com/sun/tools/javac/jvm/Target.java), but it has never been supported, so relying on it is a bad idea.

Why do you need it?

like image 39
Joachim Sauer Avatar answered Oct 13 '22 05:10

Joachim Sauer