黑马程序员技术交流社区
标题:
为什么编JAVA时候,要分别运行两次javac和java呢?
[打印本页]
作者:
张洁
时间:
2012-6-5 11:35
标题:
为什么编JAVA时候,要分别运行两次javac和java呢?
感觉这个设置不太好啊,为什么不修改下,改成直接输入:java+文件名字
因为输入的时候又是javac ,又是java不加c
javac的时候又要加后缀名.java,java的时候又不要加后缀。。。
为什么不能改成直接java+文件名呢 然后其他步骤由系统自己自动执行?
求解惑,不要回答太复杂哦~
作者:
邵阳
时间:
2012-6-5 11:54
首先楼主善于思考,不过楼主没考虑到一点就是javac也有自己的作用,而不是简单单的一个中间步骤。
举个形象的例子来解释一下。
javac就相当于通过编码生成一个的音乐播放器,它就存在那里,我们如果不点击开始播放,它就不会播放音乐。 而java就相当于那个开始播放按钮,是执行播放任务。试想如果你的音乐播放器一直播放音乐,而没有停止和播放键,是不是很郁闷啊。可能例子不太恰当,不过原理是这个。
作者:
庄星睿
时间:
2012-6-5 11:58
这是因为java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为java程序要先经过编译即 java 文件名.java
生成 .class字节码文件,与平台无关的字节码文件,它必须使用java解释器来解释执行,java 文件名
其实java语言里负责解释执行的字节码文件的就是java虚拟机JVM,我们编译的文件都是面向JVM的,都必须通过JVM进行解释,JVM就相当于一个翻译一样,当然不同
平台(操作系统)上的jvm是不同的,就好像我们有两支 不同的笔,但要把同一个笔帽套在两支不同的笔上,只有为这两支笔提供一个转换器,即这个转换器向上的
接口相同,用于适应同一个笔帽,向下的接口不同,用于适用两个不同的笔。也就是说所有平台上的JVM向上提供给java字节码程序的接口完全相同,但向下适应不同平台
的接口则互不相同。
希望我这么回答你能理解,哈{:soso_e100:}
作者:
刘蕴学
时间:
2012-6-5 12:02
庄星睿 发表于 2012-6-5 11:58
这是因为java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为java程序 ...
你想不这么麻烦,其实也行,动态字节码技术,但程序驱动方面仍然还得做一些正规的编译
作者:
黄克帅
时间:
2012-6-5 14:20
如果有编译时期的错误怎么办。 直接运行后来解决不更麻烦?
你想直接运行也可以 ,用高级工具 ,比如eclipse myeclipse 你敲代码就编译了,有编译错误就马上能发现。 不用你手动去编译,就可以直接运行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2