Reputation: 2765
I have a project that uses generics and a few Java 1.5/6 bits and pieces. Is it possible to compile this code to work on a system running a 1.4 JRE?
I use an ANT build script and javac task to compile the library. This builds fine while the target attribute is 1.5.
If I change the target to be 1.4 I get the following error:
generics are not supported in -source 1.4
(use -source 5 or higher to enable generics)
So I add a source attribute and try a value of 5 and 1.5. New error:
javac: source release 5 requires target release 1.5
Am I going to have to go through all my code and change the 1.5 stuff to make this work?
Upvotes: 7
Views: 2791
Reputation: 37007
I've not used either of these solutions, but there is
-target jsr14
may workYou might also find javac -XD-printflat
useful (though take care not to overwrite your original source).
Upvotes: 7
Reputation: 75356
I have had good experience with Retrotranslator (retroweaver did not work well with what I was needing, cannot remember exactly what).
It worked very well for my purpose (creating JDK1.4 versions of Logback).
http://retrotranslator.sourceforge.net/
Upvotes: 1
Reputation: 346260
I have a project that uses generics and a few Java 1.5/6 bits and pieces. Is it possible to compile this code to work on a system running a 1.4 JRE?
No.
Am I going to have to go through all my code and change the 1.5 stuff to make this work?
Yes. But there's a way to automate that, using a tool called Retroweaver. There's no guarantee that it will catch everything though.
Upvotes: 6
Reputation: 3647
Generics are implemented by type erasure so they should work before generics were introduced. However you would be unable to compile the code with an older version of the compiler (I don't know why you would want to do that)
Upvotes: 0