Java入门篇之Java与javac命令的爱恨情仇

java和javac命令到底是什么意思?

javac:将写好的java文件转换为Java字节码 

格式:javac name.java

注意:使用后不会在命令行出现结果的反馈和变化 因为这个命令操作的结果是将java代码编译成字节码文件 到我们.java路径下可以看到新增了一个class字节码文件 

 java:运行字节码文件

 格式:java name


在最开始学习的时候,我发现使用 java Test.java 一样可以运行java文件 这是为什么呢?

我们java 运行的到底是.java 还是class呢?为什么class可以省略? 加了class反而报错?

带着一些列的疑问开始了Java正式学习(谷歌启动)  


在阅读了一系列文章后发现 两个命令大概是这样运行的

 当我们使用java命令运行一个没有被编译的Java文件 发现报错

java name 命令是直接搜索当前文件夹中带有class后缀的name文件 如果找到就运行 如果没有 就报错

那为什么不能用带后缀的方式运行java的字节码文件呢?

在java中由这样一个规定 带包名的java文件 使用 java xxx.name(xxx指的是包名也就是class文件所在的路径)

最后一个问题 既然我们java命令使用的对象是.class 为什么java name.Java同样可以运行呢?

在java11后单文件源码 不通过编译可以直接运行

Java 11 : 无需编译即可运行单文件程序-InfoQ

总结:

javac是调用编译器将代码转化为字节码 

java是调用解释器对字节码进行解释 

值得注意的是:

        在java11后,java单文件源码(意思是只有一个类的java文件)是不需要通过编译命令javac 来执行编译操作就可以直接运行的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值