安装mingw32 tofrodos时出错:javah can't be master

编译windows版本的android sdk时,说明上说

Under Ubuntu, you will need the following extra packages:

$ sudo apt-get install mingw32 tofrodos

mingw32 is the cross-compiler, tofrodos adds a unix2dos command

所以要先sudo apt-get install mingw32 tofrodos,不巧的是本人在执行此命令时不太顺利,遇到了如下的错误提示:

update-alternatives javah can't be master:it is a slave of javac

网上查不到解决办法,琢磨了两天才弄明白。原来要想解决问题还是了解下update-alternatives,这里就不细说了,网上到处可以查得到。还是来说说问题产生的原因吧。

 

原因: 在系统中javah被定义成为了javac link 的一个slave link,可以看到


@bogon:~$ update-alternatives --display  javac
javac - manual mode
 link currently points to /usr/lib/jvm/java-1.5.0-sun/bin/javac
/usr/lib/jvm/java-1.5.0-sun/bin/javac - priority 100
 slave javah: /usr/lib/jvm/java-1.5.0-sun/bin/javah
/usr/lib/jvm/java-6-sun/bin/javac - priority 63
 slave javac.1.gz: /usr/lib/jvm/java-6-sun/man/man1/javac.1.gz
Current `best' version is /usr/lib/jvm/java-1.5.0-sun/bin/javac.

可以看到javac link这个master link确实存在一个javah slave link。

将这个slave link删除即可解决,由于没找到删除slave link相关命令,就将带有javah slave link的javac master删除了,命令:

@bogon:~$sudo update-alternatives --remove javac /usr/lib/jvm/java-1.5.0-sun/bin/javac

这样master link被删除时它下面的所有slave link也会消失。如果需要这个master则再重新建立即可,只是要注意不要再创建javah slave link。

让我们来查看一下删除一个master link 后的javac

@bogon:~$ update-alternatives --display  javac
javac - auto mode
 link currently points to /usr/lib/jvm/java-6-sun/bin/javac
/usr/lib/jvm/java-6-sun/bin/javac - priority 63
 slave javac.1.gz: /usr/lib/jvm/java-6-sun/man/man1/javac.1.gz
Current `best' version is /usr/lib/jvm/java-6-sun/bin/javac.

 

能看到,是少了一个master link,同时javah slave link也没了,可以继续apt-get install mingw32了。

 

 

 

你可能感兴趣的:(master)