java faq_JavaFAQ

If you've questions about packaging Java Software for Debian, have a look at Java/Packaging and the JavaPackagingFAQ.

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

In order to run java software you proboably need a jre package such as openjdk-6-jre. In order to compile java you need a jdk package such as openjdk-6-jdk. If you don't care which version of java is used, then default-jre and default-jdk are packages which exist on all platforms and give you something sensible.

sudo apt-get install openjdk-6-jdk

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-6-openjdk/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

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/hooksThe 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 <

sun-java5-jdk shared/accepted-sun-dlj-v1-1 boolean true

sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true

EOFThis 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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值