Открыл для себя древнюю, но крайне полезную утилитку update-alternatives. Эта утилитка просто незаменима если приходится работать c кривыми не совсем удачными сборочными файлами.
Небольшой пример. У нас есть куча проектов, которые необходимо собирать разными JDK. Что-то собирается при помощи 1.5, что-то 1.6 и вообще ничего нельзя собрать OpenJDK. При переключении с проекта на проект надо либо каждый раз пересоздавать линки на нужный компилятор, либо можно воспользоваться update-alternatives.
При использовании update-alternatives, вначале, нужно сконфигурировать все используемые компиляторы:
sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_27/bin/java 1
После чего можно довольно просто переключаться между версиями:
a-stavonin:/mnt/../build: sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode
1 /usr/lib/java/jdk1.5.0_22/bin/java 1 manual mode
* 2 /usr/lib/java/jdk1.6.0_27/bin/java 1 manual mode
3 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode
1 /usr/lib/java/jdk1.5.0_22/bin/java 1 manual mode
* 2 /usr/lib/java/jdk1.6.0_27/bin/java 1 manual mode
3 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
Press enter to keep the current choice[*], or type selection number: