仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1287|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA编程:javac-----Java编程言语编译器

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:43:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.编程|编译javac-----Java编程言语编译器

*提纲
*申明
*查找范例
*文件列表
*选项
*例子
*请参考

SYNOPSIS[提纲]
javac[options][sourcefiles][@files]
oldjavac[options][soucefiles][@files]
参数可疑位恣意按次
options
命令行选项
sourcefiles
一个或多个原文件
@files
一个或多个列有原文件列表的文件

DESCRIPTION[申明]
javac工具读由java编程言语编写的类(class)和接口(interface)的界说,并将它们编译成字节代码的class文件
有两种将原文件名传送给javac的办法
*文件数目教少,可复杂将文件名列在命令行上
*文件数目较多,将文件名列在一个文件中,文件名用空格(包含tab)或换行离隔.将该文件前加"@"字符后,利用javac编译

原文件必需有.java后缀名,类(class)文件必需以.class为后缀名.原文件和类文件必需有定位该类的根文件名(即,往失落后缀的文件名).比方:一个定名为MyClass的的类,原文件名应为MyClass.java,该原文件将被编译成字节代码的名为MyClass.class的类文件.

嵌套类(innerclass)的界说将发生附加的类文件.这些类文件的文件名由内部类名(outerclassnames)和嵌套类名兼并而成.比方,MyClass$MyInnerClass.class

你应当将原文件安排在能反响它们packagetree的目次下.比方,假如你将一切的原文件安排在/workspace目次下,com.mysoft.mypack.MyClass类的原文件(即.java文件)应当为/workspace/com/mysoft/mypack/MyClass.java
[对Windows:以上应为.比方你将一切的原文件安排在c:workspace目次下,com.mysoft.mypack.MyClass类的原文件应为c:workspacecommysoftmypackMyClass.java]

缺省情形下,编译器将把类文件(.class文件)安排到和原文件(.java)不异的目次下.你能够经由过程利用-d选项指定方针目次(见选项的申明)

查找范例
当编译一个文件时,编译器一般必要关于它临时没法判别的范例的信息.编译器必要每个在文件中利用的,extened或implemented的类或接口的范例信息.它包含在文件中没有分明提级的,可是有大概经由过程承继来供应信息的类或接口.
比方:当你承继java.applet.Applet,你同时也利用了Applet类的先人:java.awt.Panel,
java.awt.Container,java.awt.Component和java.awt.Object.
当编译器必要范例信息时,它寻觅界说了范例信息的原文件或类文件.编译器起首寻觅boottrap和extension类(这些除非你利用编译器选项,不然不必要体贴),接着查找用户的类路径,用户的类路径经由过程CLASSPATH情况变量或利用命令行选项-classpath来界说.(细节,请看*设置ClassPath*),假如利用-sourcepath命令行选项,编译器将在该路径下查找原文件,不然编译器将在用户类路径下同时查找类文件和原文件.你能够经由过程利用-bootclasspath和-extdirs命令行选项来设置分歧的bootstrap和extension类;见上面的Cross-Compilationoptions

一次乐成的查找将找到一个类文件,原文件或二者.上面是javac怎样处置每种情形
*查找找到一个类文件(.class文件)但无原文件(.java文件):javac利用了类文件
*查找找到一个原文件但无类文件:javac将编译该原文件,然后利用天生的类文件
*查找找到二者:javac判别类文件是不是过时.假如类文件过时,javac将从头编译原文件并将利用更新后的类文件.不然,javac将利用该类文件(没有过时)
缺省情形下,javac经由过程对照原文件和类文件的变动日期来判别类文件是不是过时.(-Xdepend选项供应了一个慢一些,可是更牢靠的办法)

主张:javac将冷静(不输入信息)地:-)编译那些没有在命令行上指定的文件.利用-verbose选项能够来跟踪主动编译历程.

[FILELIST]文件列表
为使javac的命令行短小或更复杂,你能够指定一个或多个文件,这些文件每行含有一个文件名.在命令行,在这些文件前利用@字符来指定它们是文件列表.当javac碰到一个的名开首为"@",它将以为在该文件中的文件名为必要处置的文件的名子
比方:你能够将一切的原文件列在一个名为sourcefile的文件中.这个文件大概云云:

MyClass1.java
MyClass2.java
MyClass3.java
你能够经由过程
%javac@sourcefiles
[windows:c:jdk1.4injavac@sourcefiles]
编译MyClass1.java,MyClass2.java,MyClass3.java

OPTIONS[选项]
javac有一系列的尺度选项,这些选项被以后开辟情况所撑持,而且将在今后的刊行版中持续被撑持.一些非尺度的选项为专门为以后的假造机和编译完成.它们将在未来改动.(非尺度选项以-X开首)

StandardOptions[尺度选项]

1:-classpath<classpath>
设置用户类路径,掩盖在CLASSPATH情况变量中的用户类路径,假如CLASSPATH和-classpath都没有指定,用户路径将包括以后目次.(更多细节见设置路径)
假如-sourcepath选项没有指定,在用户类路径下查找类文件,也查找原文件.
2:-d<directory>
为类文件设置方针目次.假如一个类是一个package的一部分.将类文件安排到反响package名的子目次下.(假如必要,将创建目次).比方:假如你指定-d/home/myclasses而且类为com.mypackage.myClass,那末该类将称为/home/myclasses/com/mypackage/MyClass.class
[windows:-dc:workspace,将发生c:workspacecommypackageMyClass.class]
假如-d没有指定,javac将类文件安排到和原文件不异的目次下
注重:利用-d选项指定的目次不主动加到你的用户类路径中.
3:-deprecation
显现每一个利用或重载的"不该再利用"的成员或类,假如没有-deprecation,javac将只显现利用了这些类或成员的原文件名.
4:-encoding
设置原文件的编码名,比方EUCJIS/SJIS(日文编码),假如-encoding没有指定,将利用平台缺省的转换
5:-g
发生一切的调试信息,包含部分变量.缺省情形下,调试信息只包含行号和原文件信息.(倡议利用)
6:-g:none
不发生调试信息
7:-g:{keywordlist}



你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。
小魔女 该用户已被删除
沙发
发表于 2015-1-21 13:06:09 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
简单生活 该用户已被删除
板凳
发表于 2015-1-25 13:45:59 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
飘灵儿 该用户已被删除
地板
发表于 2015-2-2 22:17:26 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
5#
发表于 2015-2-8 12:41:41 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
活着的死人 该用户已被删除
6#
发表于 2015-2-10 00:26:33 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
变相怪杰 该用户已被删除
7#
发表于 2015-2-18 09:30:38 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
蒙在股里 该用户已被删除
8#
发表于 2015-2-23 08:38:59 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
山那边是海 该用户已被删除
9#
发表于 2015-3-6 19:25:38 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
柔情似水 该用户已被删除
10#
发表于 2015-3-13 06:11:41 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
只想知道 该用户已被删除
11#
发表于 2015-3-24 02:26:18 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
不帅 该用户已被删除
12#
发表于 2015-4-10 06:47:17 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
灵魂腐蚀 该用户已被删除
13#
发表于 2015-4-16 08:45:52 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
兰色精灵 该用户已被删除
14#
发表于 2015-4-23 02:18:06 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
第二个灵魂 该用户已被删除
15#
 楼主| 发表于 2015-4-28 08:05:58 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
莫相离 该用户已被删除
16#
发表于 2015-4-28 14:53:58 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
再现理想 该用户已被删除
17#
发表于 2015-6-6 12:59:13 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
爱飞 该用户已被删除
18#
发表于 2015-6-24 00:32:16 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
透明 该用户已被删除
19#
发表于 2015-6-29 07:58:13 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-8 21:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表