Differences between revisions 15 and 16
Revision 15 as of 2008-07-28 17:21:22
Size: 3987
Editor: ?MM
Comment:
Revision 16 as of 2008-07-28 17:22:05
Size: 3985
Editor: ?MM
Comment:
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
  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
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

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 installt he 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 Blackdown Java and alternatives

Question

I want to install the ["Java"] runtime 1.4.1 from Blackdown and do

 [apt-get] install j2re1.4 

it escapes with an error message :

 update-alternatives: unable to make /usr/lib/mozilla-cvs/plugins/javaplugin_oji.so.dpkg-tmp 
 a symlink to /etc/alternatives/javaplugin_oji-mozilla-cvs.so: No such file or directory

What is wrong?

Answer

Seems that this error message happen when the directory

 /usr/lib/mozilla-cvs/plugins

does not exist. According to debian-user maillist this has been reported as a bug, but a workaround exist

 mkdir -p /usr/lib/mozilla-cvs/plugins

will make the install procedure continue without problem.

See also:

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:

  • I use a way to do that "on the fly" because I think it's easier to manage if you have several debconf settings to manage. Just add to your .pbuilderrc:
     HOOKDIR=$HOME/debian/pbuilder/hooks
    The create a file called i.e. "D50sun-java-licenses" in $HOOKDIR with the following content (it basically has to start with "D" and a two digit number for ordering):
     #!/bin/sh
     debconf-set-selections <<EOF
     sun-java5-jdk shared/accepted-sun-dlj-v1-1 boolean true
     sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true
     EOF
    This accepts the licenses before packages are installed. I prefer this because I can deactivate certain settings easily (by commenting out sections or renaming hook files) and do not have to keep a full chroot for every possible debconf setting. Also, I tend to forget which exactly setting I did in which chroot.

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


CategoryJava