Fedora Linux由于开发者的问题,导致Sun的JVM在它上面安装和配置都非常困难。这里谈论的和下面安装的Sun的JVM(以及JDK)都是指官方的实现版本,不是其他的参考实现。在这里我会教你如何在5分钟或者更少的时间内比较简单地在Fedora Linux 6或7上面安装JDK 6或者Java SE 6。下面是详细步骤:
1. 做为root用户登录
2. 首先你要在这里下载JDK 6或者Java SE 6。下载工作在图形浏览器比如Firefox、Internet Explorer或者Safari里面都很正常。可是Sun使得Linux控制台(象那些试图安装在他们特定web服务器)用户从java.sun.com下载这些文件很困难。你没法从基于文件的lynx浏览器访问下载链接。幸运的是有一个解决办法,就是我发现了一个秘密地点,在那里你可以很容易得使用wget或者curl(控制台程序)去下载JDK 6。如果你打算使用任何下载加速程序的话,这个消息也非常有用。现在的二进制(32位版本)下载在这里。随着时间推移,这个链接肯定会改变,所以你最好是浏览到上面的链接,然后从那个页面得到下载链接比较妥当。
用wget 或者curl下载它。例如,按照上面的连接,这个命令是这样:
wget http://www.java.net/…/jdk-6u2-ea-bin-b02-linux-i586-12_apr_2007-rpm.bin
注意:这个链接为了简化期间被缩短了,然而链接指向的是真实的下载地址。
3. 现在修改下载的文件到755权限,象这样:
chmod 755 jdk-6u2-ea-bin-b02-linux-i586-12_apr_2007-rpm.bin
4. 然后运行它:
./jdk-6u2-ea-bin-b02-linux-i586-12_apr_2007-rpm.bin
你将需要输入yes去表示接受他们的用户协议,然后安装过程会自己完成。不幸的是,到此为止你的工作还没做完。在命令行输入java –version你会发现它还是指向从gcj来的蹩脚的没有价值的老版本JVM。
5. 现在你需要寻找JDK安装的真正位置,然后指示Fedora接受你的选择。
输入以下命令:
updatedb;locate javac |grep bin
你将会看到像这样的项:
/usr/java/jdk1.6.0_02/bin/javac
这里的/usr/java/jdk1.6.0_02是你的机器的真正JAVA_HOME。注意这一点,因为你将需要它来运行后面的命令。
现在你需要运行alternatives命令指示Fedora认可Sun的JVM。
alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_02/bin/java 100
alternatives --install /usr/bin/jar jar /usr/java/jdk1.6.0_02/bin/jar 100
alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_02/bin/javac 100
如果有需要,你可以用同样的格式指定其他的Java可执行程序。
注意:如果alternatives命令不在你的路径里面,你可以使用locate alternatives去找到它的位置。
最后我们需要配置alternative去使用Sun的JVM做为缺省JVM。输入下面命令:
/usr/sbin/alternatives --config java
它会出现至少两个选项给你选。选择那个Sun的JVM的选项。对于其他命令也重复同样的过程。
现在你已经为Fedora上大部分调用JVM的应用更新了配置。输入java –version,你会看到象下面的输出:
java version “1.6.0_02-ea”
Java(TM) SE Runtime Environment (build 1.6.0_02-ea-b02)
Java HotSpot(TM) Client VM (build 1.6.0_02-ea-b02, mixed mode, sharing)
注意:这样做对于Fedora上面的大多数调用JVM的应用有效,除了Tomcat。缺省安装的Tomcat被硬编码使用GCJ的JVM。我修改它的配置文件但是没有效果。我的解决方案是从Tomcat网站直接安装Fedora版本的Tomcat,那样的话,只要修改JAVA_HOME的值指向我们前面安装的位置,它就会正确工作。