装不了jdk了,大家帮忙看一下

软件和网站开发以及相关技术探讨
回复
头像
glade
帖子: 1383
注册时间: 2005-10-21 16:57

装不了jdk了,大家帮忙看一下

#1

帖子 glade » 2006-10-31 19:34

装jre也装不成

代码: 全选

$ sudo apt-get install sun-java5-jre
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
Reading state information... 完成      
sun-java5-jre 已经是最新的版本了。
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 0B 的软件包。
解压缩后会消耗掉 0B 的额外空间。
正在设置 sun-java5-bin (1.5.0-08-0ubuntu1) ...
Error: could not find libjava.so
Error: could not find Java 2 Runtime Environment.
dpkg:处理 sun-java5-bin (--configure)时出错:
 子进程·post-installation script·返回了错误号·2
在处理时有错误发生:
 sun-java5-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)
总是有这个错误
头像
Adams
帖子: 327
注册时间: 2005-09-21 9:59

#2

帖子 Adams » 2006-11-01 9:07

你装的不是jdk
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

#3

帖子 oneleaf » 2006-11-01 9:51

sun-java5-bin 错了,彻底删除后重新安装。
头像
glade
帖子: 1383
注册时间: 2005-10-21 16:57

#4

帖子 glade » 2006-11-01 15:19

装过 JDK了,装不了又试了JRE还是不行,完全删除以后装sun-java5-bin也装不了
luo.ze.neptune
帖子: 28
注册时间: 2006-11-10 16:44

标题: 请问你是采用gnix_oag兄提供的方法安装的吗?

#5

帖子 luo.ze.neptune » 2006-11-11 9:48

你好,我用的是ubuntu6.10,我碰到和你一样的问题。我采用gnix_oag兄提供的方法直接在硬盘上引导iso的方法,没有安装到硬盘上,也没有用光驱引导liveCD。

我在论坛上找了一下,发现有好多人出现这个问题,有部分人说自己是采用gnix_oag兄的方法引导的机器,我现在在想,这个问题是否和这种引导方式有关系?

不知道哪位牛人解决了这个问题,请赐教,谢了先。
swest
帖子: 8
注册时间: 2006-08-02 12:41

Re: 标题: 请问你是采用gnix_oag兄提供的方法安装的吗?

#6

帖子 swest » 2006-11-12 14:22

我在同样的环境下遇到完全一样的问题。
同问。
luo.ze.neptune 写了:你好,我用的是ubuntu6.10,我碰到和你一样的问题。我采用gnix_oag兄提供的方法直接在硬盘上引导iso的方法,没有安装到硬盘上,也没有用光驱引导liveCD。

我在论坛上找了一下,发现有好多人出现这个问题,有部分人说自己是采用gnix_oag兄的方法引导的机器,我现在在想,这个问题是否和这种引导方式有关系?

不知道哪位牛人解决了这个问题,请赐教,谢了先。
swest
帖子: 8
注册时间: 2006-08-02 12:41

#7

帖子 swest » 2006-11-12 21:40

下午又试了好几次。无意中发现与unionfs有关系。
apt-get install 将jre安装到/usr,属于root分区(unionfs)
我的分区如下:

代码: 全选

$ mount
unionfs on / type unionfs (rw)
...
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
...
/dev/sdb3 on /apps type ext2 (rw)
我下载了sun-java5-bin_1.5.0-08-1_i386.deb,尝试直接安装。
但是apt-get安装和dpkg -i安装均告失败,我决定查看sun-java5-bin安装过程,将deb包展开到/tmp

代码: 全选

$ cd /tmp/
$ dpkg -x sun-java5-bin_1.5.0-08-1_i386.deb java
实际上,java的运行环境都在/tmp/java/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/ 目录中。

由于java执行文件/usr/bin/java实际上链接到/usr/lib/jvm/java-gcj/jre/bin/java
我们可以直接把/usr/lib/jvm/java-gcj链接到/tmp/java/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/
于是java可以执行成功。

我又尝试把/tmp/java/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/移动到root分区,结果执行java出错:

代码: 全选

$ java
Error: could not find libjava.so
Error: could not find Java 2 Runtime Environment.
由此可看出unionfs分区会导致java环境不正常。

最后我将/tmp/java/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/移动到另一ext2分区/apps,重新建立/usr/lib/jvm/java-gcj,执行java正常。
swest
帖子: 8
注册时间: 2006-08-02 12:41

#8

帖子 swest » 2006-11-12 21:51

顺便介绍直接从sun网站下载最新版本jre:jre-1_5_0_09-linux-i586.bin的安装设置。

我的分区如下:

代码: 全选

$ mount
unionfs on / type unionfs (rw)
...
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
...
/dev/sdb3 on /apps type ext2 (rw) 
安装:

代码: 全选

$ cd /apps
$ mkdir java; cd java
$ ln -s /tmp/jre-1_5_0_09-linux-i586.bin
$ sh ./jre-1_5_0_09-linux-i586.bin
jre被安装到/apps/java/jre1.5.0_09

设置/usr/lib/jvm/java-gcj链接

代码: 全选

$ cd /apps/java
$ ln -s jre1.5.0_09 jre
$ sudo ln -sf /apps/java /usr/lib/jvm/java-gcj
设置java中文显示,可参考
http://www.linuxfans.org/nuke/modules.p ... &p=4455458
我的设置过程如下:

代码: 全选

$ cd /apps/java/jre/lib/fonts
$ ln -s /usr/share/fonts/truetype/simsun.ttf
$ vi fonts.dir
simsun.ttf -tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
$ cd /apps/java/jre/lib/
$ vi fontconfig.properties.src
# Version
version=1
# Component Font Mappings
serif.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
# Search Sequences
#sequence.allfonts=latin-1
sequence.allfonts=zh-1

$ ln -s fontconfig.properties.src fontconfig.properties
luo.ze.neptune
帖子: 28
注册时间: 2006-11-10 16:44

解决方法

#9

帖子 luo.ze.neptune » 2006-11-19 13:25

大家好,我也出了这个问题,在论坛上找了一段时间的解决办法,发现出这个问题的基本上都是用LiveCD或者是采用论坛上gnix_oag兄提供的在硬盘上直接引导LiveCD ISO+unionfs保存设置的方法来运行ubuntu。后来论坛上另一哥们也怀疑是unionfs的问题,他说他自己试了一下,将JDK安装在非unionfs的文件系统(FAT32或ext2或ext3)中,就没有问题了。我自己尝试了一下,确实能够解决这个问题。以下是我的步骤:
1、下载JDK,直接到sun的网站下载(注意下载Linux self-extracting file版本的那个,文件名是jdk-1_5_0_09-linux-i586.bin)
2、将下载到的JDK移动到非unionfs的文件系统上,例如我的windows的E盘是FAT32的,我将下载的JDK拷贝到E盘(假设下载JDK的目录是/tmp,那么执行命令sudo cp /tmp/jdk-1_5_0_09-linux-i586.bin /media/e_win,这里/media/e_win是我windows E盘的路径)
3、在E盘下执行这个JDK(如果不能执行,可能要给jdk-1_5_0_09-linux-i586.bin加上x),执行下面两个命令:(1)sudo cd /media/e_win;(2)sudo ./jdk-1_5_0_09-linux-i586.bin;这将会把该JDK在当前目录下展开到jdk1.5.0_09目录下。
4、到解压出来的JDK的bin目录下,执行以下./java,怎么样,发现直接就可以执行了吧。
5、然后执行sudo update-alternatives --verbose --install /usr/bin/java java /media/e_win/jdk1.5.0_09/bin/java 500 --slave /usr/share/man/man1/java.1 java.1 /media/e_win/jdk1.5.0_09/man/man1/java.1(注意,这里/media/e_win/jdk1.5.0_09是我自己的路径,你可能需要根据自己的路径进行修改)
6、然后执行sudo update-alternatives --config java,选择我们安装的java。执行java -version,怎么样,没问题了吧。
7、设置环境变量JAVA_HOME,CLASSPATH等。ok

总结:出现这个问题可能是unionfs的问题,我也只是猜测,因为对unionfs本身没有什么太多了解。
回复