Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I am a QA engineer interested in mobile development and automation.I have basic programming experience (intermediate level Python, C++ programmer) and as most companies choose Java for writing frameworks I need to pickup Java.

I use Ubutnu 12.04 LTS and I will be using Head First Java as learning material. When I searched for JDK options I found Oracle Java 6 and 7 and Open JDK. I read somewhere in Ubuntu forums that Java 6 is not recommended on Ubuntu systems and I am a little bit confused about which version should I use, that would be compatible with the book and the OS.

share|improve this question

closed as off-topic by durron597, MichaelT, Snowman, gnat, Kilian Foth May 4 at 8:45

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – durron597, MichaelT, Snowman, gnat, Kilian Foth
If this question can be reworded to fit the rules in the help center, please edit the question.

Look to the future, not the past. Learn Java 7 if you have the opportunity to do so. Currently, Java 6 is far more widespread, but it's not different enough from Java 7 to cause you too many difficulties if you've learnt Java 7. – David Wallace Aug 11 '12 at 8:35
See my answer to a related question here:… – World Engineer Aug 12 '12 at 0:12
I have been using openjdk-6-jdk with Eclipse in Ubuntu. I recommend it. – user61852 Aug 16 '12 at 13:16

6 Answers 6

  • Language version: whoever told you not to use 6 on Ubuntu has no idea what he's talking about. It works just fine. If you're just starting out, you might as well use the latest version, but keep in mind that a lot of shops are still on 6. Also, 6 and 7 are actually pretty similar, so this choice doesn't matter that much.

  • Oracle vs OpenJDK: On Ubuntu, I'd use OpenJDK, since it's part of the distro, and you'll have much less troubles with installation and dependencies.

Good luck.

share|improve this answer

Go for the latest one. However, it should not really matter too much, because the core functionality and principles are stable and not changing that often.

In addition, look forward to improve your tooling. Using IDE like Eclipse, NetBeans, etc. is always preferable than text editor of your choice.

Reference to learn: Always go for official tutorials and resources first. Have look for this reference Java Technology Learning

share|improve this answer

Java's version numbering scheme doesn't really match up with other programming languages. After 1.0, the next "major" update was 1.2 in 1998 with the introduction of swing. The next "major" update was 5.0 in 2004 with the introduction of generics. Everything else was library updates that are significant in quantity but relatively minor in scope.

They also do a pretty good job of maintaining backward compatibility. I'm pretty sure you can still run binaries compiled with 1.0 on a 7.0 virtual machine. They are also slow to remove deprecated features, so you can still write programs that look very 1.0-like if you are so inclined.

In other words, pick up the very latest version you can. You're going to be able to follow tutorials written for Java 6 with very little difficulty, if any at all.

share|improve this answer

The Head First series is excellent, but is a couple of years old now and so will not have references to Java 7 and it's new language features. I'd recommend using Java 6 for learning and then following Oracle's Java 7 tutorial or grab a copy of The Well-Grounded Java Developer.

share|improve this answer

Since you already know Python, the latest version should be ok. Python is a major source of inspiration for it. Also take a look at these posts:

share|improve this answer

Any reasonably recent version of Java will do. Recent versions are incremental changes, not major language updates. Use Eclipse and ignore JDK.

share|improve this answer
There must be tutorials which demonstrate the changes from one version to another. So the OP could learn any version and then see what's new – superM Aug 11 '12 at 10:33
I have seen too many "developers" who can click buttons in Eclipse but have no idea what they are actually doing. For learning I think "Use Eclipse and ignore JDK" is bad. Tools are a nice help but you should always understand what these tools are doing. – johannes Aug 16 '12 at 13:27

Not the answer you're looking for? Browse other questions tagged or ask your own question.