javac 命令-详解

简介: javac 命令-详解

javac命令—详解


同学们好呀!今天继续和德尔继续接下来的《Java基础》的学习吧!通过《Java基础》的专栏中上一篇《第一个Java程序helloworld代码的编写》文章,我们已经轻松实现写出一个Java程序,那我们现在需要讨论的东西是什么?

正所谓:“知其然,也要知其所以然”。我们知道如何编写第一个Java程序的代码,我们也要知道编写之后,当我我们编译这个Java程序的时候会发生什么!接下来就是讨论"javac命令"知识点。



一、为什么要学javac命令

javac是Java编译器的命令行工具,它用于将Java源代码文件(.java)编译成Java字节码文件(.class)。在Java中,代码需要先编译成字节码,然后由Java虚拟机(JVM)解释执行。

原因:

  1. 编译源代码:javac命令可以将编写的Java源代码转换成可执行的字节码文件。这是Java程序运行的第一步。
  2. 发现代码错误:编译器可以帮助我们检查代码中的语法错误、类型错误和逻辑错误等,使我们能够及早发现和修复问题。
  3. 构建项目:在大型Java项目中,通常有多个源代码文件需要编译,javac命令可以帮助我们一次性编译整个项目。
  4. 跨平台兼容性:通过编译成字节码,Java程序可以在不同平台上运行,因为字节码是与操作系统无关的。
  5. 性能优化:编译过程中,javac命令可以对代码进行优化,生成更高效的字节码,提高程序的性能。

二、javac命令怎么用?

背会语法:

Javac  Java源文件的路径

1.1、Java源文件

Java源文件是以".java"结尾,其中写了Java源代码的文件。

1.2、Java源文件的路径

路径永远是包括“绝对路径”和“相对路径”的。我们要编译一个Java源文件的话,首先就是要先进入我们要编译的Java源文件所在的目录下,而进入Java源文件的目录下就有两种方式,可以直接通过Java源文件的绝对路径直接进入,也可以通过相对路径一步一步进入。以下都是针对“A.java”这个Java源文件来演示所有的具体的操作。


1.2.1、绝对路径
定义

绝对路径是从文件系统的根目录开始完整描述文件或目录的路径,包含了完整的路径信息,可以唯一确定一个文件或目录的位置。例如:D:\Users\14214\javase\bkCode\A.java

实操

我们打开notepad++编辑器之后,写好我们的A.java源文件之后,记得保存(可以使用快捷键ctrl+s快速保存)。

方式一:

保存之后,接着去文件中找到我们编写的A.java 文件在哪个目录下,然后我们鼠标停留在A.java 文件并点击鼠标右键复制文件地址(这里有个快捷进入A.java 文件目录下的快捷方式就是直接在notepad++编辑器界面点击左上角的“文件”——>“打开所在文件夹”——>“文件管理器”,然后就可以复制A.java 文件的地址(这里复制的就是绝对路径)

方式二:

直接在notepad++编辑器界面坐上角点击“文件”——>“文件所在文件夹”——>“命令行”。这样就可以直接通过Java源文件的绝对路径进入了DOS命令窗口。

方式三:

保存之后,接着去文件中找到我们编写的A.java 文件在哪个目录下,然后我们找到页面上方的地址栏,然后点击输入“cmd”后敲回车,这样就可以直接通过Java源文件的绝对路径进入了DOS命令窗口。

方式四:

保存Java源文件之后,我们找到我们编写的A.java文件的目录下,打开DOS命令窗口,输入javac,打一个空格,然后直接把A.java 文件拖到DOS命令窗口,然后敲击回车,则完成了编译的工作。(这个方式可能需要看了下面内容之后再使用)


示意图
  • 前三种进入通过绝对路径进入Java源文件方式示意图


1.2.2、相对路径
定义

相对路径是相对于当前工作目录或另一个参考路径的路径,不包含完整的路径信息,而是描述文件或目录与参考路径之间的相对位置关系。相对路径更简洁,适用于描述当前工作目录下的文件或目录位置。例如:javase\bkCode\A.java

实操

既然相对路径是一步一步进入,那么我们现在通过相对路径的方式同样实现进入到A.java源文件存在的目录当中。这时我们就需要使用到DOS命令当中的“cd命令”即(change directory改变目录)。使用cd命令一步一步进入到最终目录。

示意图


1.3、编译Java源文件

  • 通过上述方式之后,我们就可以进行编译Java源文件了,程序员需要再硬盘的某个位置准备一个.java 扩展名的文件,这个文件就被称为Java源文件,Java源文件当中编写的是Java源代码,而这个源程序是不能随意编写的,必须符合Java语法。
  • Java程序员需要使用JDK中自带的javac.exe命令进行Java程序的编写

使用工具:

javac.exe(JDK中自带,在bin目录下)

使用地点:

Javac(Java编译器工具)子啊哪里使用?在DOS命令窗口中使用,刚刚我们以及完成了DOS命令窗口的一系列准备了。

使用规则:

java  源文件路径(绝对路径/相对路径)

实操步骤:
  1. 打开DOS命令窗口
  2. 进入Java文件所在目录(上述的任何方式都可以)
  3. 输入 java A.java
  4. 同目录下生成A.class 字节码文件,则表示编译成功
示意图:


概述:
  • 一个Java源程序可以通过javac命令之后,生成多个字节码文件,且删除Java源文件不影响生成的class文件。但是尽量不要去删除,因为我们后面可能会对Java源文件进行修改等操作然后编译生成新的class字节码文件。
  • 编译结束之后,我们还可以在其他操作平台解释并运行我们的class字节码文件,这也是Java程序设计语言跨平台性的体现。
  • 编译结束之后会在我们同目录下生成一个A.class 字节码文件。

三、总结

当我们编写Java程序时,我们实际上是在创建Java源代码文件(.java文件),其中包含了Java程序的源代码。然而,这些源代码并不能直接运行,而是需要经过编译的过程,将它们转换成可以被Java虚拟机(JVM)理解和执行的字节码文件(.class文件)。

这个编译过程是由Java编译器命令javac来完成的。javac是Java编译器的命令行工具,它属于JDK(Java Development Kit)中的一部分。通过javac命令,我们可以将Java源代码文件编译成对应的字节码文件。

下面是使用javac命令的步骤:

  1. 打开命令提示符或终端窗口。
  2. 进入存放Java源代码文件的目录。这可以通过使用cd命令(在Windows上)或cd命令(在Unix/Linux上)来实现。这一步很重要,因为javac命令需要知道Java源文件的路径才能编译它。
  3. 输入javac 文件名.java命令,其中“文件名”是你的Java源代码文件的名称,不包含文件扩展名。执行这个命令后,Java编译器将会对该Java源文件进行编译,并生成对应的字节码文件。如果编译成功,就会在同一目录下生成一个与Java源文件同名的.class文件。
  • 通过javac命令编译Java源代码文件后,我们就可以运行生成的字节码文件了。使用java命令可以运行这些字节码文件,并在Java虚拟机上执行Java程序。
  • 掌握javac命令对于Java开发者来说非常重要,因为它是将Java源代码转换成可执行字节码文件的关键步骤。同时,javac还会帮助我们检查代码中的错误,使我们能够及早发现和修复问题。

成的字节码文件了。使用java命令可以运行这些字节码文件,并在Java虚拟机上执行Java程序。

  • 掌握javac命令对于Java开发者来说非常重要,因为它是将Java源代码转换成可执行字节码文件的关键步骤。同时,javac还会帮助我们检查代码中的错误,使我们能够及早发现和修复问题。

欢迎大家在评论积极发言!!!

目录
相关文章
|
7月前
|
安全 API UED
A2A(Agent2Agent) 简介
本文主要介绍Google于2025年4月9日发布的Agent2Agent Protocol(简称“A2A”),这是一个旨在促进不同类型智能体(Agent)之间高效沟通与协作的开放协议。
4001 74
A2A(Agent2Agent) 简介
|
机器学习/深度学习 资源调度
【机器学习】最小二乘法MSE
【1月更文挑战第24天】【机器学习】最小二乘法MSE
|
8月前
|
存储 缓存 人工智能
【原理】【Java并发】【synchronized】适合中学者体质的synchronized原理
本文深入解析了Java中`synchronized`关键字的底层原理,从代码块与方法修饰的区别到锁升级机制,内容详尽。通过`monitorenter`和`monitorexit`指令,阐述了`synchronized`实现原子性、有序性和可见性的原理。同时,详细分析了锁升级流程:无锁 → 偏向锁 → 轻量级锁 → 重量级锁,结合对象头`MarkWord`的变化,揭示JVM优化锁性能的策略。此外,还探讨了Monitor的内部结构及线程竞争锁的过程,并介绍了锁消除与锁粗化等优化手段。最后,结合实际案例,帮助读者全面理解`synchronized`在并发编程中的作用与细节。
611 8
【原理】【Java并发】【synchronized】适合中学者体质的synchronized原理
|
12月前
|
存储 Java 数据库连接
南大通用GBase 8s大对象类型clob和text的比较说明
本文探讨了GBase数据库中用于存储大对象数据的字段类型,包括TEXT、CLOB、BYTE和BLOB,分析了它们的特点、适用场景及在实际应用中的最佳实践。重点介绍了不同数据大小对应的字段类型选择,以及在数据库工具和程序中操作这些类型的方法,强调了合理选择字段类型对提升数据库性能的重要性。
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
124015 0
|
JavaScript 前端开发 测试技术
前端全栈之路Deno篇(五):如何快速创建 WebSocket 服务端应用 + 客户端应用 - 可能是2025最佳的Websocket全栈实时应用框架
本文介绍了如何使用Deno 2.0快速构建WebSocket全栈应用,包括服务端和客户端的创建。通过一个简单的代码示例,展示了Deno在WebSocket实现中的便捷与强大,无需额外依赖,即可轻松搭建具备基本功能的WebSocket应用。Deno 2.0被认为是最佳的WebSocket全栈应用JS运行时,适合全栈开发者学习和使用。
683 7
|
XML 存储 前端开发
【Web 前端】HTML、XHTML、XML 有什么区别?
【4月更文挑战第22天】【Web 前端】HTML、XHTML、XML 有什么区别?
|
Java Maven
maven配置阿里云镜像源
maven配置阿里云镜像源
41124 1