版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2Java编程环本章重点在于Java虚拟机的概念和J2SDK的使用。本章首先介绍了JavaSunJ2SDK开发工具,并且给JavaJava语言程序开发的直观认识,最后本章介绍了J2SDK工具包提供的程序调试器。JavaJavaJ2SDKJavaApplicationJava 运行环境和开发环境正如前文所言,Java语言是先编译后解释的。Java源程序首先被编译成字节码文件,然JavaJavaJava虚拟机,Java虚拟机在各种Java虚拟机是一个虚拟机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有avaJava入JavaJava语言在不同平台上运行并不需要重新编译。Javaava虚拟机了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码,就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。Java虚拟机是Java语言底层实现的基础,对Java语言感的人都应对Java虚拟机Java最基本的开发工具是Sun公司发布的Java开发工具Java2SDKJava2SDK是免费软件,可以通过h 或其它取得J2Sdk。另外还有一些其他公司也实现了Java的开发工具如IBM的JDK等。大型的集成开发环境软件有BorlandJBuilder等,这些软件提供了完整的Java开发环境和可视化的开发。Java源程序可以用任何文本编辑器来编写。然后用Java2SDK的javac编译生成扩展class的字节码文件。用java程序运行它。对于初学者,最好不要使用Jbuilder等集成的编译等过程,这对于初学者对Java语言的熟悉了理解是不利的,所以建议初学者使用一般的编辑器和Sun的Java2SDK进行Java的学习。JDK:SunJavaJDK(JavaDevelopmentKitJRE:即Java运行环境JRE(JavaRuntimeEnvironment。Sun的Java上就提供Java2SDK和JRE各种版本的。Java2SDK是用于开发Java程序所用,而应用程序的最Java的运行时环境。JREJava程序要运行开发环境的安装和Java语言前,必须安装一套Java语言的开发平台。SunJava2SDK是人们最常使用的Java语言开发工具。本小节将介绍对Java2SDK开发工具的安装和使用进行详Java2SDKSun免费提供开发工具Java2SDK,提供Windows、JavaDesktopSystem(linux)、SolarisSparc三种版本,IBMAIX、HPHP-UX、MacOSX、BSD等,都有兼容于标准Java2SDK的java2SDK。Java2SDK主要包括以下工具:javac:JavaJavajava:Javajavap:JavaJava程序的成员变量及方法等信息。javah:C代码处理工具,用于从Java类调用C++代码。appletviewer:小应用程序浏览工具,用于测试并运行Java小应用程序。JavaJava程序的一个独立运行系统,它以一种稳定、高性能方式运行,是独立于平台的Java字节码。Java编译器javac则用于生成这些字节码。Java2SDKWindows版本的Java2SDK可以在SUN公司的Java主页h 的安装文件是一个可执行文件。运行这个文件,按照安装程序的指导,很容易就能把Java2SDK安装上。安装完毕之后,需要设置两个环境变量:PATH和CLASSPATH。这两个变量在Windows98和Windows2000(WindowsXP、Windows2003)下的设置方法不同。为了便于说明,假设Java2SDK的安装路径是D:\USR\j2sdk1.4.2\bin。Windows98autoexec.batsetPATH=%PATH%;setCLASSPATH=.\;D:\USR\j2sdk1.4.2\lib\; D:\USR\j2sdk1.4.2\lib\dt.jar;D:\USR\j2sdk1.4.2\lib\tools.jar;第一行的作用是把D:\USR\j2sdk1.4.2\bin目录加到系统路径下,如果装在 中则应写成E:\j2sdk1.4.2\bin,第二行的作用是设定Java2SDK的CLASS路径。autoexec.bat,设置才会生效,Win98启动时会自Windows2000、WindowsXPWindows2003,则应该按以下步骤MyComputer(我的电脑)选中Properties(属性),在属性框上选择Advanced(高级)一项2-1添加环境变此时环境变量中已经有 一项,首先单击选中,然后点击Edit(编辑在弹出的EditUserVariable(编辑用户变量)框中的VariableValue(变量值)Java2SDK2-22-2path变在“环境变量”框中单击New(新建)按钮,在弹出的NewUserVariable(新建用户变量)框的VariableName(变量名)一项中填入CLASSPATH,在“变量值”2-3单击确
2-3CLASSPATH变echo看看classJava2SDK的使在Java2SDK开发工具包中,要经常使用的两个工具是:javac和java,javacJavajava则用于运行编译好的字节码。下面分别对它们进行详细的介编译器Javajavac.exe。javacJavajava解释器来解释执行这些Java字节码。Java程序源代码必须存放在后缀为.java的文件里。对于Java程序里的每一个类,javac都将生成与类名称相同但后缀为.class的文件。编译器把.class文件放在.java文件的同一个里,除非用了-d选项。当到某些自己定义的类时,必须指明它们的存放,这就需要利用环境变量参数CLASSPATH,CLASSPATH的设定方法javacjavac<options><source-classpathpathjavacCLASSPATH环境变量的设置。.;<your_path>。例如:.;C:\java\doc\classes;C:\tools\java\classes表示编译器遇到一个新类,它先在本文件中查 下其他文件中查找它的定义,如果还没有,则继续搜索C:\java\doc\classes -d<directory>指明类层次的 javac-d<my_dir>这样将MyProgram.java程序里的生产的.class文件存放在 -gJava调试工具时用到的局部变量信息。如果编译没有加上-O优化选项,则只包含行号信息。- 关闭警告信息,编译器将不显示任何-Ostatic、final、private- 解释器javaJavaJava字节码进行解释。Javajava[-options]classjava-jar[-options]jarfile描述:javajavajavacJavaclassname参数是要执行的类名称。注意,任意在类名称后的参数都将传递给要执行类的main函数。javamainmainmain函数创建了其他线程,则java总是等到最后一个线程退出才退出。-classpathpathjavac中-classpath-verbosejava编辑器Java语言之前最好选择一个好的编辑器。好的编辑器能够有效的帮助我们进行代码输入,让我们专著于语言本身的学习。下面介绍两个优秀的编辑器。UltraeditUltraEdit是一套功能强大的文本编辑器,适合于编辑文字、Hex、ASCII码。Ultraedit可以对Java、C等语言的关键字进行显示。可同时编辑多个文件,支持在多个文件中进行查找,支持正则表达式。同时,Ultraedit可以集成javac、java等Java2SDK工具,使得JavaUltraedit中进行。也就是说,Ultraedit完全可以配置成一个简单Ultraedit2-42-4Ultraedit界EmacsEacs是Unix下一个非常优秀的编辑器,而且已经移植到indows平台。Emcs仅仅看作一个编辑器,Eacs所提供的不仅是一个编辑器,它所提供的是一个整合的工作环境,而这个环境是建立在编辑的基石上。一般的软件都是将编辑器视为一个附属功能,只有Eacs以编辑器为基石,在其上发展其它的功能。如,Eacs完成可以配置成一个具有自动代码补全,语法显示,集编辑、编译、运行、查错为一体的集成开发环境。Emacs通过lisp来进行功能扩展,因为Emacs拥有大量的用户,Emacs也有着大量的它来写Java程序是非常得心应手的。Emacs2-5所示,如果你不喜欢它的颜色,你完全可以自己配置成其他的2-5Emacs界Java程序的结在介绍完Java语言的开发环境和编辑器的选择后,下面让我们来看看一个Java程序 oWorld.java文件中。 o,World!"的应用程public staticStringstr=" o,World!";publicstaticvoidmain(String[]args){ //显 }}这个序用cass定的个oorld类,pubc指明这是一个公共类,一个Java程序中可以定义多个类,但最多只能有一个公共类。存放公共类的文件名必须和公共类的名字一致。oWorld中有一个String类型的类变量和一个main()方法,所有的Java应用程序(Application)main()方法,Java解释器没有生成任何实例时,main()是程序运行的。main()方法必须用public、void、static来修饰。main(它用来实现字符串的输出,这条语句实C语言printf语句C++cout<<语args[]是传递 main()方法的参数“/*”和“*/”之间的内容的注释,“/**”和“*/java编译时被编译器忽略,这和“/*…*/”一样,在用javadoc生成文档的时候,“/**”和“*/”的文字会被 javac o,importjava.awt.*;importjava.applet.*;public oWorldAppletextends{publicvoidg){g.drawString o}}这是一个简单的Applet(小应用程序)。程序中,首先用import语句输入java.awt和 oWorldApplet,用extends指明它是Applet的子类。在类中,我们重写父类Applet的paint()方法,其中参数g为Graphics类,它表明当前作画的上下文。在paint()方法中,调用g的方法drawString(),在坐标(20,20)处输出字符串“ oWorld!”,其这个程序中没有实现main()方法,这是Applet与应用程序Application的区别之一。为了运行该程序,首先我们也要把它放在文件oWorldApplet.java中,然后对它进行编译: 得到字节码文件oWorldApplet.class。由于Applet中没有main()方法作为Java解释器的,须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行。它的<HTML>文件如下:<TITLE>AnApplet<applet oWorldApplet.class"width=200其中用<Applet>标记来启动oWorldApplet,code指明字节码所在的文件,widthheightappletHTMLExample.htmlD:\>appletviewer这时屏幕上弹出一个窗口,其中显示oWorld!,显示结果如图2-5所示2-6Java从上述两个例子中可以看出,Java程序是由类构成的,对于一个应用程序来说,必须有一个类中定义main()AppletApplet一个子类。在类的定义中,应包含类变量的和类中方法的实现。Java在基本数据类型、运算符、表达式、控制语句等方面与C、C++基本上是相同的,但它同时也增加了一些新的内容,在以后的各章中会有详细的介绍。本节中的例子只是使大家对Java程序有一个初步的了解。程序调Java2SDK提供了一个名为jdb的调试工具,jdb令行选项如下jdb[options][class]其中,class是开始调试的类的名称。argumentsclass的main()Javajdb用于调试Java类。它利用Java调试程序API来检查和调试本地或Java解释器。jdbjdbJava解释器。这可以通过在命令行中用命令jdb代替java来做到。例如,要在jdb下启动D:\>jdbD:\>jdb-classpath$INSTALL_DIR/classes采用这种方法启动时,jdb用指定参数来调用另一个Java解释器,加载指定的类并在使用jdb的第二种方法是将它附接到某个已在运行的ava解释器上。出于安全方面用-Xdebug选项来启动ava用-Xdebug选项启动ava解释器时,ava解释器将输出一口令供db使。外,试的释决不能用JIT编译器来运行。用 pier=NONE选项来JIT编译器的加载。专门的调试程序类必须能为调试后的解释器所使用。这些类不是缺省运行环境类库的组成部分。用-Xbootclasspath;$INSALL_DIR\jre\lib\rt.jar;$INSALL_DIR\lib\tools.jar选项使调试后的解释器能够定位所有必需的类。总之,启动ava解释器令如下: - -要将jdb附接到某个正在运行的Java解释器上(在知道了会话口令后),按如下命D:\>jdb-host<主机名>-password<口令下面列出的是基本的jdb命令。Java调试程序也支持某些其它命令,可用jdbhelp注意:要浏览局部(堆栈)变量,必须先用-ghelp或?:最重要的jdb命令,help命令列出可识别令及其简要说明print:浏览Java对象。print命令调用对象的toString()方法,因此其输出格式将根表示的java.lang.Threadprint支持Java表达式,如printMyClass.clsVar的java.lang.Thread。如果类未被加载,则必须指定其全名,该类将作为副作用加载。appletdump命令支持Java表达式,如dump0x threads:列出线程。线程由其对象标识来where:不带参数的where转储当前线程的堆栈(用thread命令来设置whereall转储当前线程组中所有线程的堆栈。where线程标识转储指定线程的堆栈。线程标识的形式为t@<索引>,如t@3。如果所请求的线程被挂起(由于位于断点处或通过suspend命令来挂起)print和dump命令来浏览局部(堆栈)和实例变量。up和down命令用于断点:在jdb中可以在类中设置断点,例如:stopatMyClass:45。必须指定源文件的行号或方法名(断点此时设在该方法的第一个指令处。clear命令使用clearMyClass:45Class:45语法来删除断点。用不带参数的clear命令可列出当前设置的所有断点。cont命令将使执行继续。用step命令可进行单步操作。异常:当发生异常而Java程序的堆栈之上又没有捕获这种异常的语句时,Java运行环境通常将转储该异常,然后退出。然而,在jdb下运行时,该异常被当作不可恢复的断点处理,jdb将停止在抛出异常的指令上。如果该类是用-g选项编译的,则可输出实例可用catch命令捕捉一些特殊异常,例如:catchFileNotFoundException或catchmypackage.BigTroubleException。Java调试工具保留有这些异常的列表,当其中的一种被抛出时,则看作在抛出该异常的指令上有断点。ignore命令将从该列表中删除异常类。注意:ignore命令不会使Java解释器忽略特殊异常,它只使调试程序忽略它们。选项:当在命令行中用jdb取代Java解释器时,jdb接受的选项与java当将jdb附接到正在运行的Java解释器会话上时,jdb-host<主机名-password<口令-XdebugJava解释器输出环境变量:CLASSPATH用于为系统提供用户定义类的路径
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新课标语文阅读课程设计
- 新疆地区土方开挖施工方案
- 新建格宾护岸施工方案
- 新安钢板桩施工方案
- 新吴区股权激励课程设计
- 断章 课程设计
- 斜坡屋面安装施工方案
- 整治黄土裸露施工方案
- 数电电路流水灯课程设计
- 2320《物流管理定量分析方法》(2023年11月)
- 燃气管网运行工施工环境保护详细措施培训
- 神经系统的分级调节课后巩固练习 高二下学期生物人教版选择性必修1
- 卫生院请休假管理制度
- 靶向治疗的题目
- 马克·吐温及作品《哈克贝利·费恩历险记》素材课件
- 【初中数学 】第五章 相交线与平行线 章节练习题 2023-2024学年人教版数学七年级下册
- 2024年化学检验工(中级工)理论备考试题库及答案(汇总)
- 工业产品质量安全风险监测实施规范
- 482023年广西职业院校技能大赛中职组《职业英语技能》赛项职场应用环节样题
- 高中化学教学学生高阶思维能力培养路径分析
- 原始记录书写培训课件
评论
0/150
提交评论