How get going with running and compiling Java programs in Debian real quick

In order to run java software, not only do you need the java-common package, but proboably also a sun jdk package such as sun-java5-bin. You may also want to install the javacc package. I.e.:

sudo aptitude install java-common sun-java5-bin sun-java5-jdk sun-java5-jre javacc

You reach java as /usr/bin/java . This file is really a link to /etc/alternatives/java , which in turn is a link to your java installation folder that's located in /usr/lib/jvm . For instance, java may link via /etc/alternatives/java to /usr/lib/jvm/java-1.5.0-sun/jre/bin/java .

If you have more detailed questions, you may be interested in seeing ?[http://www.debian.org/doc/manuals/debian-java-faq/].

One particular reason that may lead your interest to read the tips above, is in case ant terminates for you with the error:

BUILD FAILED

(path)/build.xml:49: Unable to find a javac compiler;

com.sun.tools.javac.Main is not on the classpath.

Perhaps JAVA_HOME does not point to the JDK

About pbuilder and Sun's Java SDK

Question

I am build-depending on sun-javaX-jdk. However, I can't get an automatic build in a clean environment working, because sun-javaX-jdk does not install in a non-interactive environment, because it asks for license confirmation:

 Unpacking sun-java6-jdk (from .../sun-java6-jdk_6-06-1_amd64.deb) ...
 sun-dlj-v1-1 license could not be presented
 try 'dpkg-reconfigure debconf' to select a frontend other than noninteractive

Answer

There are two possible answers:

Patch one and for all your pbuilder environment

 $ sudo pbuilder login --save-after-login
 # echo "sun-java5-jdk shared/accepted-sun-dlj-v1-1 boolean true" | debconf-set-selections
 # echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true" | debconf-set-selections
 # exit

Add a hook to patch it on the fly

In http://lists.debian.org/debian-java/2008/05/msg00024.html Manuel Prinz says:

As mentioned in man pbuilder, you need to make the hook script (D50sun-java-licenses) executable before pbuilder will load it.


CategoryJava