安装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了。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值