软件指南针:专注于软件传播与分享

Java源代码编译工具javac用法详解

来源:原创 2269次浏览 0条评论
☞ 本文主要介绍软件Java的相关内容:Java源代码编译工具javac用法详解

   其下列版本/分支可以参考本文:

  • 全部版本/分支

众所周知,我们平常编写的Java代码需要先被编译为二进制的字节码,例如Hello.java源文件会被编译为Hello.class字节码文件,然后才能被Java虚拟机执行。

通常情况下,我们大多使用Eclipse(MyEclipse、NetBeans)等集成开发环境进行Java程序开发,我们只需要编写Java代码,Eclipse等开发工具就能够轻松地为我们完成编译、打包、部署等一系列工作。那么将源代码文件编译为字节码文件的工作到底是谁来做的呢?今天,我们就来给大家介绍这位幕后英雄——javac。

javac,即javac.exe,是JDK中自带的一个Java源代码编译工具。Eclipse等开发工具实际上也是调用javac来编译Java源代码的。javac.exe一般位于JDK安装目录/bin文件夹中,想要在命令行窗口中直接使用javac命令,我们需要将该路径追加到系统环境变量path中(如果你安装的JDK是Windows安装版(.exe),则可以忽略这一步)。

javac.exe编译工具

下面我们就来介绍javac的命令行用法,并尝试在不使用Eclipse等IDE的情况下,使用javac来编译Java源文件。

首先,点击系统左下角的【开始】->【运行】,输入"cmd"然后点击【确定】(或直接回车),即可进入命令行窗口。

在命令行窗口中,输入命令javac -help并回车,从而查看javac的用法帮助信息。

编译工具javac.exe

从上图可知,javac命令相对较多,且较为复杂。不过,就一般使用而言,我们只需要了解几个常用的javac编译命令即可。

在这里我们以文件D:/Java/test/Hello.java(其中test为包名)为例,来介绍如何使用javac编译Java源文件,其源代码如下所示:

package test;

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

如下图所示,我们只需要在命令行窗口中输入命令javac D:/Java/test/Hello.java,即可编译该源文件(编译成功不提示任何,编译失败将会显示错误信息)。

如果文件路径中存在空格,则必须在路径两侧使用双引号。

编译Java源文件

此时,我们就可以在该源文件所在目录下看到编译生成的Hello.class字节码文件。

编译生成的Java字节码文件

上面就是最简单的javac命令用法,当然我们还可以在javac命令中增加一些参数选项命令,以下是比较常用的一些参数命令(多个参数选项可搭配使用,中间以空格隔开)。

-encoding参数

-encoding参数命令,用于指定Java源文件所使用的字符编码,例如"UTF-8"、"GB2312"等,这样可以避免Java源文件的中文乱码问题,例如下列代码指定源文件的字符编码为"GB2312":

javac -encoding GB2312 D:/Java/test/Hello.java

-source和-target参数

-source-target参数命令,分别用于指定编译前的源文件的兼容版本和编译后的字节码文件的最低兼容版本。简而言之,-source参数用于指定使用什么版本的编译器来编译源文件;-target参数用于指定编译出来的字节码文件最低支持在什么版本的Java虚拟机上运行。

需要特别指出的是:

-source的参数值可以为1.3、1.4、1.5……一直到当前JDK版本(自JDK 1.5版本开始,也可以直接使用1.x中的x作为参数值,例如-source 1.5也可以写作-source 5-target的参数值也是如此)。

-target的参数值可以为1.1、1.2、1.3……一直到当前JDK版本。如果没有指定-target参数,则-target的默认值会随着当前JDK版本和-source参数的不同而不同,它们之间的对应关系如下表所示:

当前JDK版本 指定的-source参数 -target默认值
JDK 1.5 <= 1.4 1.4
1.5 1.5
JDK 1.6 <= 1.4 1.4
其他版本 等于-source参数值
JDK 1.7 <= 1.4 1.4
1.5 ~ 1.7 1.7
JDK 1.8 <= 1.4 1.4
1.5 ~ 1.7 1.7
1.8 1.8

例如,我们在JDK 1.7版本下,指定编译Hello.java文件时使用的编译器版本为1.5,最低支持在1.5版本的JVM上运行,则可以编写如下命令:

javac -source 1.5 -target 1.5 D:\Java\test\Hello.java

-verbose参数

-verbose参数可用于显示javac编译器正在执行的操作信息,例如命令行javac -verbose D:\Java\test\Hello.java,其执行结果如下图所示:

javac -verbose 示例

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部