Ubuntu下安装最新版JDK时“No matching plugin was found”问题的解决方法

在ubuntu下安装JDK最简单方式就是用apt-get install 命令了,但这样安装的JDK往往不是最新版,要安装最新的JDK还需要到sun的官方网站下载。但sun的网站只有rpm和bin两种格式,并没有Ubuntu使用的deb格式,这就需要我们使用ubuntu的转换工具了。我们可以下载bin格式的,最新的jdk文件是:

jdk-6u13-linux-i586.bin

安装步骤参见:

http://linuxtoy.org/archives/install_jdk_6_in_ubuntu.html

我一开始就是按着这个来安装的,但因为linuxtoy没有 java-package0.28ubuntu1all.deb 下载,

又去google了一下,发现:

http://packages.qa.debian.org/j/java-package.html

才是java-pakage的源头,而且最新的已经是0.42版了(我用0.28版的发现不能安装jdk1.6.10,因为该版本缺少一些文件),于是下载最新版的源代码:

http://ftp.de.debian.org/debian/pool/contrib/j/java-package/java-package_0.42.tar.gz

 

下载成功后解压: tar zxvf java-package_0.42.tar.gz

然后cd java-package_0.42目录,执行命令编译(可能需要root权限,前面加sudo或fakeroot):

$ debian/rules binary

这会生成java-package_0.42_all.deb 文件。我的系统提示要安装debhelper,用apt-get install debhelper就可以了。

现在可以安装java-package了:

$ sudo dpkg -i ../java-package_0.42_all.deb

 

安装成功后,再用apt-get install fakeroot命令来安装fakeroot。然后运行:

$ fakeroot make-jpkg jdk-6u13-linux-i586.bin

但是却提示 “No matching plugin was found”,在网上查了半天,终于找到了解决的方法。原来java-package安装成功后,会在/usr/share/java-package 目录下生成一些sh文件,这些文件就是上面fakeroot make-jpkg命令时需要用到的,如果安装jre,就需要用该目录下的sun-j2re.sh 文件,如果安装JDK,就要用到sun-j2sdk.sh 文件,我们可以看到对应i386|486架构部分的代码最多支持到jdk1.6.9,现在我们要安装的是jdk1.6.13,最后的版本数字是2位,没有办法识别,下面是sun-j2re.sh文件内容:

case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in

i386|i486-linux-gnu) #表示是32位的x86架构

case "$archive_name" in

......中间是各版本jdk的设定

"jdk-6u"[0-9]"-linux-i586.bin") # SUPPORTED 这个只支持一位的小版本号

j2se_version=1.6.0+update${archive_name:6:1}${revision}

j2se_expected_min_size=130

found=true

.....

现在我们加入如下代码:

"jdk-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED 支持2位的小版本号

j2se_version=1.6.0+update${archive_name:6:2}${revision}

j2se_expected_min_size=70

found=true

 

最终的代码如下所示:

"jdk-6u"[0-9]"-linux-i586.bin") # SUPPORTED 原来的

j2se_version=1.6.0+update${archive_name:6:1}${revision}

j2se_expected_min_size=130

found=true

;;

"jdk-6u"[0-9][0-9]"-linux-i586.bin") # SUPPORTED 新增的

j2se_version=1.6.0+update${archive_name:6:2}${revision}

j2se_expected_min_size=70

found=true

;;

esac

 

这样就可以解决“No matching plugin was found”的问题了。如果你用的是64位的系统,则在“ia64|ia64-linux-gnu)”部分加入上述代码。

 

现在执行:

$ fakeroot make-jpkg jdk-6u13-linux-i586.bin

就可以生成需要的deb文件了。然后用

$ sudo dpkg -i sun-j2sdk1.6_1.6.0+update13_i386.deb

命令安装jdk就可以啦。

 

这样,我们就可以随时安装最新版的JDK到ubuntu了,而不比等待ubuntu源的更新了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值