Linux 版 (精华区)

发信人: tcpip (高级草包), 信区: Linux
标  题: 公报11-为 Linux 设置一个 Java 开发环境-1
发信站: 紫 丁 香 (Tue May  2 22:08:50 2000) WWW-POST

为 Linux 设置一个 Java 开发环境
作者:Chris Gibbs  译者:少敏


------------------------------------------------------------------------------
--

目录
获取Java开发工具箱(JDK) 
内核对Java的支持 
JDK 
Java Beans 
Swing 
Java访问工具 
Java Servlet开发工具箱(JSDK) 
文档 
Java教程 
Sun公司的HotJava浏览器 
下个月 
简介
这篇文章是想帮助那些Linux或Java新手在他们的电脑上运行Java应用程序,并且为开发
新的Java应用程序提供一个有效的开发环境。
  
我将特别解释如何设置Sun公司的 1.1.x JDK 和其它相关配套。这不是在Linux上运行
Java的唯一途径。 
Blackdown.org 现在提供Linux版的新的 1.2.x JDK (在写这篇文章的时候,它还仍然是
测试版)。我建议只有当你正在用新的 2.2.x 内核时才用它。假如你要安装 1.2.x JDK,
请注意,你不必获取 Swing 和 JSDK 配套, 因为它们已经被包括在内了。假如你使用 
1.2.x JDK 来运行较老的Java应用程序,你可能会发现一些兼容性的问题。尤其是假如你
打算用 Apache 的扩展 javapache,你需要用 JDK 1.1.x。 
此外,还有其它第三方的 Java 环境和编译器,例如 IBM 的 jikes。使用这些环境和编
译器,你要自担风险!Sun公司定义并开发了Java 语言,因此我希望他们的 Java 环境是
最标准的。其它环境可能是有趣的,但我在此就不述及了。
  
不幸的是Linux版的 Java 语言的开发落后于其它操作系统版本的开发。虽然在 Linux 下
使用 Java 仍然有很多优势,也容易得到一些常用的开发工具。如果你未见过最新版本的
DDD( 动态显示调试器 ),你或许不会认识到它现在支持Java。如果你要在 Linux 下写程
序,DDD 是一个必不可少的工具软件。
  
为何要使用Java? 
Java 最大的好处也是它的最大坏处。理由是,同样的 Java 代码在不经重新编译就可运
行于不同的平台上,这导致 Java 应用软件会显得慢。而因为慢这一条,导致一些人对使
用 Java 产生疑问。
  
当然,如果速度是选择编程语言时所要考虑的最主要的因素,我根本不会考虑使用 Java
。尽管这本电子杂志的早期几期中说过的一些应用软件,例如 Jedit 和 Java CD 播放器
在速度上和用C写的程序一样,它们启动起来非常慢,当我有其它快得多的替代选择时,
我很不愿用 Java 版的。
  
但是 Java 不是为了这种应用软件的。Java 杰出之处是在当初为它而设计的方面,也就
是提供一个使得应用程序可在因特网上用的方法。在因特网上,装载应用软件的速度相对
下载一个应用软件所需的时间而言并不真正重要。
  
现在来考虑你的 ISP (网络服务供应商),以及给你提供因特网访问的服务器。你的 ISP 
(甚至是你的本地内联网 Intranet )需要最快机器,并且可能有一些制约条件( 例如花费
 )。与在服务器端的应用程序的软件上的投入相比,服务器本身的实际花费可能并不重要
。用 Java 来执行服务器端的应用程序,使你的 ISP 不必选择用最好的机器这个架构以
及不必担心在运行这种应用程序时在操作系统方面的花费和可行性。只需把它们简单地从
一台机器上拷贝到另一台上。或许某一天,微软会开发出一个比任何Unix系统都好的可靠
的操作系统。即使那一天来临,我也无须改变所用的 Java,使用 Java 可让我保留和现
在用的一样的服务器端应用软件。
  
如果你只是使用单台计算机,无需访问本地或因特网网络,你就不必考虑用 Java。但是
假如你的电脑将联到本地网络或因特网,那么则必须认真对待是否要用 Java 这个问题。
Java 不是开发网络应用程序的唯一方法,例如也可用 Perl 来编写。但 Java 是一个非
常吸引人的选择。 



获取程序开发工具箱JDK
请不要从 Sun公司直接获取JDK。他们只提供对微软,Solaris等系统的支持。你可到 
Blackdown.org 去找你所要的版本。
  
在此提到的其它软件包,应该可从 Sun公司得到。
  
JDK 的 Linux口可从 Linux 发布盘或在 http://blackdown.org 找到。你可能会发现你
对要安装的文件感到不知所措。有 JRE(Java运行环境) 还有 JDK。我建议你要得到整个 
JDK 的软件包,因为它包含了在其它配套中的所有东西。 



内核对Java的支持
Linux可能是第一个对 Java 提供直接内核支持的操作系统。这使得 Linux 可直接运行 
Java 应用程序和 Java applet,而不需要用象 Netscape 这样的浏览器。但是,如果你
认为直接内核支持意味着内核可运行Java 代码所需要的任何东西,那可就错了。
  
你需要认识到的是Java的运行类似解释程序而不是编译程序。在计算机时代的早期,使用
解释语言来写简单的应用程序是很普遍的,例如 GW-BASIC。所写的代码不被编译成程序
,而是传给解释器,由它来实际执行各个指令。这是很没有效率的工作方式,其速度总是
很慢。
  
Java 不同于一个解释语言,例如早期的 Basic 语言。Java 的源代码会被编译。但它的
源代码不被编译成电脑可直接执行的程序,和用gcc编译C程序产生的程序不同。它是以字
节编译成标准格式。相同的 Java 应用程序可运行于任何平台的原因就在于这个字节码是
一种标准格式。由Sun公司或Blackdown.org所提供的 java 和 appletviewer所完成的功
能是传送字节码并执行指令。字节码在被执行前必须被传送给解释器,这就是为什么Java
应用程序显得慢的原因。不过,情形没有早期的BASIC程序那样糟,因为这个字节码已被
java编译器优化了。 
当你把支持Java编译进你的内核程序,你真正所做的是告诉操作系统当要执行Java应用程
序时调用 java 或 appletviewer。Linux只是给你一个捷径,即 'appletviewer 我的应
用程序'。
 

因此你必须告诉内核你的Java执行文件存在哪里。如果你是从Blackdown.org获得JDK的,
你的java和appletviewer将放在/usr/local/java/bin。如果是从 S.u.S.E.的发布软件安
装JDK的,它们则被放在/usr/lib/java/bin。当然你也可把JDK安装在非标准的地方。
  
在你重新编译你的Linux内核之前,编辑 /usr/src/linux/fs/binfmt_java.c 这个文件会
影响实际的环境。 
     #include <linux/malloc.h>
     #include <linux/binfmts.h>

     #define _PATH_JAVA      "/usr/local/java/bin/java"          // 用你系统中
的正确位置来代替
     #define _PATH_APPLET    "/usr/local/java/bin/appletviewer"  // 用你系统中
的正确位置来代替
     #define _PATH_SH        "/bin/bash" 

     char binfmt_java_interpreter[65] = _PATH_JAVA; 
     char binfmt_java_appletviewer[65] = _PATH_APPLET;
请注意的是java 和 appletviewer 的位置必须是实际执行文件所在的位置,而不是你所
建的符号链接symbolic link。 在这个例子中的目录 /usr/local/java 可以是 
/usr/lib/java-1.1.7 的符号链接, 但实际的文件不能符号链接, 它必须存在于 
/usr/lib/java-1.1.7/bin。
  
现在你能够决定是否把支持Java直接编译到内核中,或者把它当作模块。我选择使用模块
。我觉得需要加的注释只是当我要运行 html 文件时, kernld 不会自动装载
binfmt_java 模块, 因此我必须首先用 "insmod binfmt_java"。
  
运行 HTML 文件? 
是的, Linux 将允许你把某些HTML文件当作应用程序来运行。要明白为什么要这样做,你
须要明白Java applet和Java 应用程序的差别。Java应用程序提供它自己所需的所有资源
,而applet则不必。一般来说,applet 需要被包括在网页中,该网页可被有Java功能的
浏览器如Netscape或者HotJava来观看,因为applet 没有自己的顶层窗口。另一种办法是
使用 appletviewer 程序来看 applet。
  
Linux 还给你另一个选项,如果你把下面这一行 
        <!--applet-->
加到一个 HTML 文件 ( '<' 必须是这个文件中的第一个字符 ), 用 chmod 把这个文件的
属性变为可执行的,然后你就能够直接运行包括在这个文件中的applet了。
  
用相同的方式,Java 应用程序是由一个或多个类(class)文件组成。要使这个应用程序可
被Linux执行,只需要用 chmod 把最顶层的类文件变为可执行的。 



JDK
读一读JDK所带的文档,我们发现没有必要设置 CLASSPATH 或 JDK_HOME 环境。这对 
JDK 本身是对的,但我发现一些应用程序需要设置好这些环境。无论如何,设置它对你无
任何害处。我建议你用下面的步骤来正确安装 JDK: 
export PATH=$PATH:{JDK_HOME}/bin 
export JDK_HOME={JDK_HOME} 
export JAVA_HOME={JDK_HOME} 
export CLASSPATH=./:{JDK_HOME}/lib/classes.zip 
这里的 {JDK_HOME} 就是你安装JDK的顶层目录。
  
Java Beans
JavaBeans API(应用程序接口)允许你用Java编程语言创建组件软件。组件是完整的,自
包含的,可重用的软件单元,它们可被可视地链接到任何Java程序,applet或者servlet
。这种软件单元被称做Bean。已有许多Java IDE(集成开发环境), 例如 NetBeans 或者 
Visarj 使用这个技术来提供应用程序建造工具。在发布套件中所包括的是 BeanBox, 一
个让你起步的简单的JavaBean 集成开发环境。
  
当你用在 BDK/beanbox 子目录下的 bin.sh 启动 BeanBox, 将为你打开三个窗: 
BeanBox 窗 
 
工具盒 窗 


--
"这一千多年没写诗了?"
"写了, 不过只写了两句."
"千年得两句, 一定是万古丽句了. 念来听听."
"好吧, 我现丑了" 太白星清了清嗓子, 浑厚的男中音在天庭响起:
大海啊, 都是水;
骏马啊, 四条腿;

※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: freesrc.hit.edu] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:6.653毫秒