Java基础 - javac命令详解之编译 如何使用javac命令编译

createh55个月前 (12-22)技术教程39

1.为什么要搞定 javac 命令

1.javac 是java中的编译源代码的命令工具,将.java文件编译成 .class 文件;
2.由于当下为了提高开发效率,大多数的开发工作都在 java的 集成开发环境中进行,因此,
也就很少有机会直接使用javac命令来编译我们的代码;

2.javac 命令使用的两个场景

1. javac   源文件  :
          直接编译源文件,并将编译后的.class文件放到与源文件统一目录下;
          
2. javac   源文件   -d   编译文件输出路径 : 
         编译源文件,并将编译后的 .class 文件 放到 -d 参数后的目标路径中;
         
3. javac   源文件   -d   编译文件输出路径  -encoding utf-8 : 
          编译文件, 并将编译后的.class文件放到 -d参数后的目标路径中,
且指定编码格式 为utf-8,解决运行时中文乱码问题。

4.javac @sourcesList_file -d 编译我呢见输出路径 -encoding utf-8 :
       4.1 @soucesList_file : 文件中可以写多个java源文件,这种方式适合编译较大型的java项目,
       4.2 每一个java源文件之间用回车符进行分割;
       4.3 存在多级目录的,在windows下使用`\` ,在linux 下使用 '/' : 
             windows : 'src\com\northcastle\xxx.java'
             linux : 'src/com/northcastle/xxx.java'

2.1 单文件的编译

2.1.0 项目准备

新建一个目录,用于存放我们的项目:
目录结构如下:

2.1.1 java文件内容

》 Hello.java 文件内容如下:

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

2.1.2 执行编译

打开命令行窗口,进入到 test 文件夹下面;
执行命令如下: javac .\src\Hello.java -d target -encoding utf-8
如果没有报错,则执行成功,去target 目录下查看,会生成 Hello.class 文件



2.1.3 运行程序

进入到 target 目录中,使用 java 命令来执行程序。

java Hello


相关文章

Java 代码编译的3种方式,其中JIT最重要!

通过 Javac 将程序源代码进行编译,转换成 Java 字节码,JVM 通过模板方式把字节码翻译成对应的机器指令,逐条读入,逐条解释翻译,执行速度必然比可执行的二进制字节码程序慢得多。为了提高执行速...

如何编写优雅的 Java 代码 如何写出优雅的java代码

不知道各位在项目开发过程中有没有过这种体会,接手上一任的代码,看到代码的那一刻,有一种想要砸电脑的冲动,一个方法体内写了无数行代码,到处皆可看到复制粘贴的代码,变量命名也让人看不懂。各位在编码时,是否...

Java构建和发布工具jDeploy java 构建工具

Java语言在设计之初就提出了“一次编写,到处运行”的口号。但是理想很丰满,现实很骨感,实际上Java经过这么多年的发展其易用性也不是很让人满意,其运行环境的配置也颇为坎坷。本文虫虫给大家介绍一款Ja...

编写属于你的第一个Java程序 这是我的第一个java程序怎么写

前言在前面的文章中我们已经安装好了Java开发与运行环境,所以在本篇中将介绍如何编写一个简单的Java程序,然后对源码进行编译,最后执行,查看运行效果。编写属于你的第一个Java程序使用文本编辑器编写...

如何在Visual Sutdio中编写JAVA工程?

Visual Studio作为宇宙第一的IDE,代码调试、逻辑分析都十分强大,JAVA语言目前在学校还是工作中,都得到了普遍的应用,例如阿里巴巴,京东都主要以JAVA开展网页开发,JAVA的编辑器常有...

Windows 10 下编译 64 位 OpenJDK 8 并单步调试

Windows 10 下编译 64 位 OpenJDK 8 软件版本操作系统:Windows 10Cygwin:3.5.4-1Visual Studio:2010 英文版freetype: 2.7Bo...