相信大家都装过JDK吧,在装JDK时我们会在命令提示符窗口中通过javajavac两个命令来检测我们的环境变量是否配置正确,那么你知道java和javac两个命令有什么用吗?

在了解这两个命令的作用时,我们先来简单了解一下java代码的编译过程,我们都知道java语言具有可移植性,关键就在这个可移植性是怎么实现的。我们都知道有一个东西叫JVM就是虚拟机,关键就在这个虚拟机,我们所写好的JAVA源码是一个".java"文件,虚拟机将".java"文件编译为一个".class"文件也就是字节码文件,可移植性呢就是通过这个字节码文件来实现的,假如我们直接将源码文件编译为计算机能执行的二进制文件,那么每个操作系统所形成的二进制文件都不同,那么这就不能实现可移植性,所以先将源码生成一个字节码文件,再通过不同平台上的不同虚拟机执行相同的字节码文件就可以实现java的可移植性。

1.javac编译文件

前面我们简单了解了java语言的编译过程,那么我们就可以先来研究这个javac命令,javac命令是将我们的源码".java"文件编译为".class"文件的命令,也可以理解为javac编译器。为什么需要编译呢,因为我们写的程序我们自己能看懂,但不代表电脑能看懂,所以需要对我们写的程序进行编译,将它编译为电脑能看懂的文件,但编译肯定不能我们自己来编译,我们也不会啊,所以这里的编译就需要用到javac命令对我们写的程序进行编译。

我们先来打开我们的JDK文件打开bin目录,我们会发现里面有一个javac.exe和java.exe的应用程序。

那么有什么用呢,我们来自己写个".java"文件来运用一下javac命令。首先我们创建一个txt文件。

然后将我们的代码在txt文件中写好之后,保存将文件后缀改为.class。

public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}

接着我们打开win+r打开我们的命令提示符窗口,进入到我们保存文件的路径

(ps:关于cmd的操作我就不多介绍了,点击这里学习CMD基本操作,作为一名程序猿,相关的CMD操作还是要知道的)

然后我们对我们写好的文件进行javac命令,看看会发生什么,注意:在使用javac命令时我们必须在文件后加上.java后缀

看似什么也没有发生,但当我们打开我们的文件夹时我们发现我们的文件夹里多了一个名字一模一样但后缀不一样的文件

我们来总结一下:

1.javac命令是用来编译我们写的程序的

2.编译之后我们将得到一个.class文件

2.java运行文件

那么我们得到一个.class文件之后有什么用呢,首先我们会发现我们只是编译了我们的.java文件,但我们没有运行呀,我们写程序就是为了运行相关操作得到我们想要的结果,所以我们还需要运行我们写的程序,这时候就需要用到java命令对.class文件进行运行。

同样在我们刚刚操作的CMD中,我们用java命令来对刚刚生成的.class文件进行操作,注意:使用java命令的时候,后面不能有.class后缀

我们发现这里将我们的HelloWordl输出了,也就是运行了我们写的代码。那么假如我们运行我们的.java文件会发生什么呢?

我们会发现它给我们提示了一个错误。

好的我们再来总结一下:

1.java命令是用来运行我们写的程序的

2.java命令只能运行经过编译后的.class文件

3.java编译机制

在介绍了这两个命令之后,我们最终是为了让我们java的编译机制,但我们介绍的编译机制只是一个简单的了解。通过我们自己的实践,我们就知道了首先我们写的代码在.java文件中,需要运行的是.class文件,所以我们需要用到javac命令编译.java文件,再用java命令就可以执行我们文件。我们这里了解的java编译机制不是通过无聊的什么流程图来知道它是怎么编译运行的,而是我们自己去编译运行它,因为学习编程就需要我们多动手,并且这样你也才会有性趣接着学。

java里class有什么用_安装JDK时的java和javac命令有什么用?相关推荐

  1. java环境变量用不用jre_为什么安装jdk时,会安装两个jre?不用配置jre的环境变量...

    安装jdk时,为什么会安装两个jre?不用配置jre的环境变量 细心的你或许会发现,在安装jdk结束之后会发现,怎么有两个jre的的文件夹, 和jdk里面的 并且里面的文件都是一样的,另外我们在配置环 ...

  2. 安装jdk时更改java安装路径_JDK下载安装步骤

    1.官网下载JDK 1.1    下载地址:https://www.oracle.com/java/technologies/javase-downloads.html 1.2    点击下图中JDK ...

  3. java里注释为什么报错_这些年我们在java中遇到过的坑,你遇到过几个

    1.Java注释能够识别Unicode 关于问题还引申出一个概念"Unicode 逃逸",并且为什么会有这种机制,有什么作用,我之前写过一篇文章,这里面已经做了详细的介绍,请大家点 ...

  4. linux java 权限不够_​Linux安装jdk时提示权限不够怎么解决

    ​Linux安装jdk时提示权限不够怎么解决 发布时间:2020-06-28 10:00:51 来源:亿速云 阅读:84 作者:Leah Linux安装jdk时提示权限不够怎么解决?针对这个问题,这篇 ...

  5. 安装JDK以及配置Java运行环境

    安装JDK以及配置Java运行环境 1.JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2 ...

  6. Ubuntu - 安装 jdk 、配置 Java 环境变量、编辑 Test.java 文件并输出 Hello World!

    先利用的 Xshell 或者 Xftp 把本地下载好的 Linux 版本的 jdk 复制到 Ubuntu 虚拟机下的 /home/zhouk/user/DevTools 目录下 解压:tar -xzv ...

  7. ubuntu安装jdk,ubuntu设置java环境变量

    ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装jdk,ubuntu设置java环境变量 下载jdk-6u12-li ...

  8. ubuntu apt安装java_Ubuntu 16.04 apt方式安装JDK并且配置Java开发环境详解

    安装完Ubuntu后最常用的环境安装就算Jdk了,如何简单方便地安装是象我这样的新手小白最头疼的,我经过学习后反向给大家,希望可以减少大家的学习时间,快速放到重要的事情上去! 安装默认JRE / JD ...

  9. 解决linux使用yum安装新版JDK时,Java文件夹下没有lib、bin等文件,只有jre的问题

    最近在Linux上使用yum安装JDK时,发现/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_64/文件夹下尽然只有jre文件夹,其 ...

最新文章

  1. 黄学东出任微软全球人工智能首席技术官!微软首位华人技术院士全面负责Azure云AI...
  2. 专家:端午将至湖北地区挂马网站激增 用户需警惕
  3. 使用xdebug+wincachegrind的心得
  4. java五子棋胜负判定_五子棋的判断输赢规则—Java编程(简单优化完整版)
  5. 人脸识别撞脸名画_与名画“撞脸”火爆数博会 观众直呼“太好玩”【高清组图】...
  6. luogu P3244 [HNOI2015]落忆枫音
  7. python关于字符串的内置函数_Python 字符串内置函数(二)
  8. mysql myisam 支持事务吗_第三章(附)mysql表类型MyISAM和InnoDB区别(决定了是否支持事务)...
  9. jdbc连接本机oracle卡死,Oracle JDBC 连接卡死后 Connection Reset解决过程
  10. 电子邮件服务器-PostFix
  11. Linq To Sql进阶系列(三)CUD和Log
  12. 电脑qq浏览器怎么滚动截长图_电脑上如何滚动截屏长图?这样做最简单
  13. Java:如何通过代码判断字符是拼音还是英文单词?
  14. 免费下载IOS/MAc付费软件
  15. 苹果iOS申请个人开发者账号注册教程
  16. 数学建模overleaf模板_数学建模论文怎么写?快来pick最优万能模板,一文格式全搞定!...
  17. 中国国航往返飞机票怎么改签
  18. Flash Player 更新后视频卡问题
  19. 从零开始学JSON(修订版)
  20. 计算计算机ip地址,怎么样计算电脑的IP地址、IP掩码、默认网关?

热门文章

  1. 解释型语言与编译型的必须知识点
  2. pytorch版的bilstm+crf实现sequence label
  3. LeetCode简单题之相对名次
  4. C语言与OpenCL的编程示例比较
  5. 如何在 GPU 上优化卷积
  6. XGBoost4J-Spark基本原理
  7. TinyML-TVM如何驯服TinyML
  8. NVIDIA安倍架构
  9. 手抖把Python2.7卸载了,导致了自己的yum不可用
  10. Python find方法与rfind方法的使用