This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Jar files created using JVM 7 are not working on machines having JVM6 or lower versions for me
It was running fine
I uninstalled JRE7 ,JDK7 and all other JREs and JDKs. And then installed JRE6.I got the error "could not find main class: ABC"
On installing JRE7 again it's working.
Is there a way to make jar files created using JVM7 run on lower versions
This will give UnsupportedClassVersionError unsupported major.minor version error, i believe. You should compile your code with the same version on which you want to run. If you are using eclipse you can change the compile level.
Joined: Feb 15, 2010
Suppose a jar file is created using Java 7 update7 ,will it work on a computer having JRE 7 update 5 ?
Jesper de Jong wrote:But code compiled with a newer version will not work on an older version.
Unless you tell the compiler to make the generated byte code compatible with an older version (-source and -target compiler flags).
Additionally, your code needs to not depend on any newer library methods or classes. If a method was added in JDK 7, it won't be available using the older library, and your code will fail when it tries to call that method. This can be a little harder to check for - I find if I really need something to run on JDK 6, it's best to compile and test using JDK 6, not relying on the -source and -target options. But it is possible to get it to work using the -source and -target, if you need to. It's just risky.
You should be able to tell which methods are available in Java6, because there should be a “since” tag in the documentation, as here (since 1.4).
Of course, they might have forgotten to write a since tag …
Joined: Mar 05, 2008
Sure - if you check every method in the codebase. But that's kind of tedious and error-prone for a large codebase. And I don't know of an automated tool that does it, though it's theoretically possible. Anyone?