为什么javac.exe这个文件这么小啊,只有50K都不到?

java_bian_yi_qi 2007-07-04 08:04:07
javac.exe是java的编译器,映象中编译器程序是比较大的,那么sun的工程师是怎么把javac.exe搞的这么小的啊?难道javac.exe是用汇编语言开发的吗?

此外,我有一个开发与javac兼容的编译器的计划,不知道大家有没有兴趣啊?
详情见下贴:
http://topic.csdn.net/u/20070703/23/b45e5de2-e6d3-45e2-8530-64b3bb02aa9b.html
...全文
355 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
宇宙379 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 piaopiao11 的回复:]
javac 就是执行的com.sun.tools.javac.Main类
不信的可以去试试 java com.sun.tools.javac.Main
先要把tools.jar放到classpath里面。
[/Quote]
纠正下楼上的小错误:是com.sun.tools.javac.main包下的Main.class类,
然后Main.java 又调用javaCompiler 进行语法和词法分析,。。。最够调用Gen.class 生成class文件。
piaopiao11 2007-07-31
  • 打赏
  • 举报
回复
javac 就是执行的com.sun.tools.javac.Main类
不信的可以去试试 java com.sun.tools.javac.Main
先要把tools.jar放到classpath里面。
ChDw 2007-07-31
  • 打赏
  • 举报
回复
无论java.exe还是 javac.exe其实都不大,因为它的作用只是一个启动程序


在它们启动的时会通过JNI启动JVM,并加载相应的主类
(java就加载你指定的类,javac就加载com.sun.tools.javac.Main类)

所以两个exe不大
网络咖啡 2007-07-31
  • 打赏
  • 举报
回复
其实javac只是一个入口罢了,具体的功能由一组程序来支撑,你可以把这个程序设置看做是一个批处理罢了
低调的小青蛙 2007-07-29
  • 打赏
  • 举报
回复
当然是要调用其他的 dll,

难道楼主机器上的 javac.exe 就一个文件就可以编译?
justicesun 2007-07-04
  • 打赏
  • 举报
回复
还是看看jre有多大比较有价值些
rumlee 2007-07-04
  • 打赏
  • 举报
回复
实际上exe文件可以调用dll啊,不一定exe要很大的。
iambic 2007-07-04
  • 打赏
  • 举报
回复
不过单纯的编译器其实也用不了多大,不过是一个文件翻译的工作而已。
aiyan1314 2007-07-04
  • 打赏
  • 举报
回复
javac 只是个解释过程的工具
java 是执行工具
没必要那么大
iambic 2007-07-04
  • 打赏
  • 举报
回复
现在很少有哪个程序把所有东西都打包到一个exe里了,有兴趣的话看看VC、Eclipse的exe有多大。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧