javac 编译

Java编译技巧
本文介绍两种使用javac命令编译Java源文件的方法:一种是在源文件夹内编译,另一种是从源文件夹外编译。文章还详细解释了如何利用-sourcepath和-d选项来指定源文件路径及编译输出目录。
javac编译一个目录下的所有java文件
方法一、进入源文件夹进行编译
cd mywork
cd src (然后进入src源文件夹)
javac *.java
(可以指定输出目录,javac -d ../classes *.java)

方法二、不进入源文件夹进行编译
cd mywork (不进入src源文件夹)
javac -sourcepath src src/*.java
(可以指定输出目录,javac -sourcepath src -d classes src/*.java)
说明:
1、javac可以使用-sourcepath选项指定“查找输入源文件的位置”,使用-d选项指定“存放生成的类文件的位置”。但在使用-sourcepath选项时有一点要注意,指定了-sourcepath仍然要以当前目录为起点指定待编译的源文件<source files>。(如“src/*.java”,不能以-sourcepath为起点指定源文件,如“*.java”)
2、使用*.java编译时,无须自己检查包依赖关系(如在llh包中,有llh.A_package中的类文件引用了 llh.B_package中的类),编译时会自动将输出目录(如src或classes目录)加入到classpath中,不用指定 -classpath classes选项。
3、不指定-sourcepath选项则默认把当前目录作为源文件夹,即相当于-sourcepath . 必须使用javac -sourcepath src src/*.java。
当编写完一段Java程序后,需要通过`javac`命令将代码编译成字节码文件(.class),这一过程称为编译。以下是关于Java代码如何通过`Javac`编译的一些关键点: ### 1. 编译流程 - **词法分析**:首先解析Java文件中的字符序列,将其转换为标记(Token),如关键字、标识符等。 - **语法分析**:基于生成的标记构造出一棵抽象语法树(AST)。 - **语义检查**:对AST进行遍历,保证其满足语言规范,例如变量声明是否有效、表达式是否有意义等等。 - **中间表示(IR)**:创建一种内部形式来简化后续处理阶段的工作,并优化代码性能。 - **生成字节码**:最终会从IR转化得到符合JVM规格说明的标准指令集——即.class文件内的内容。 ### 2. 使用步骤 假设有一个名为`HelloWorld.java`的简单示例文件: ```java public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!"); } } ``` 接下来可以在终端输入如下命令完成编译操作: ```bash $ javac HelloWorld.java ``` 如果没有错误发生,则会在当前目录下自动生成一个对应的`.class`文件(`HelloWorld.class`);如果存在编译期错误,它会给出相应提示信息帮助开发者定位并解决问题。 ### 3. 常见选项 `javac`还支持很多有用的命令行参数来自定义编译行为,比如指定目标版本(-source / -target), 输出路径(-d), 调整警告级别(-Xlint:unchecked 等). #### 示例: 设置兼容性和目标平台均为 JDK8 版本的同时指定期望存放结果的位置. ```bash $ javac -source 8 -target 8 -d ./out_dir MyClass.java ``` 以上就是有关于"Java 代码—Javac 编译"的基本介绍啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值