Hi Most JVMs (including Oracle/Sun's java and openjdk-6) have more than one variant. For instance openjdk-6 ships a server variant (see man java or java -help), which makes the JVM assume that will be run for "long periods of time". It also has a client variant that attempts to reduce start-up time. So openjdk-6 can be the default for both users and servers. The same applies to sun-java6 since openjdk-6 are based on open source parts of sun-java6.
Now back to the default-jdk package; default-jdk and its sister packages default-jre and default-jre-headless are "meta packages". Long story short, these packages depend on something that fulfills their meaning (e.g. kdegames depends on a lot of games for kde) - in the default-* cases; they depend on the necessary parts of the "default" JVM to bring a JDK, JRE or a headless JRE. As for the "default" then the full description of the package explains what it means: Description: Standard Java or Java compatible Development Kit This package points to the Java runtime, or Java compatible development kit recommended for this architecture, which is openjdk-6-jdk for i386. This also explains why default-java is a symlink to openjdk-6 on your architecture. Finally, to answer your question about which one a non-programmer should choose. You probably do not want a -jdk, but a -jre[1]. Personally I would pick default-jre in your case; it will always be provided by the best open source Java Debian/Ubuntu have to offer. That being said - /usr/bin/java (which is what you get by running "java" from a terminal and what most java programs will use) is controlled by "alternatives", so you can have multiple JVMs and choose your own local default by running (e.g.) update-java-alternatives[2] as root. You are welcome to suggest new descriptions to default-jdk, default-jre and default-jre-headless. Also, please note that default-jre has a mistake in its description saying that the default is "openjdk-6-jdk" where it should have said "openjdk-6-jre". This has been fixed in java- common 0.36; however Ubuntu only as 0.34 as I recall. ~Niels [1] "JDK" is short for "Java Development Kit" (it includes compilers and such), "JRE" is short for "Java Runtime Environment" which is needed for running java code. The "headless JRE" is a smaller JRE without support for graphical windows. The latter is preferred by servers, because it is smaller, but a normal JRE works just as well. JRE headless is a subset of a JRE and a JRE is a subset of a JDK; therefore if you install a JDK you also install a JRE. [2] Note that update-java-alternatives have a bug in its "--list" option. This has been fixed java-common 0.36, which is probably not in Ubuntu. -- Calling the package 'default-jdk' is not user friendly https://bugs.launchpad.net/bugs/564699 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
