在这篇博文中,我们将通过教程和使用实例来学习java编译器命令。
Javac 是由Sun框架开发的 ,现在归Oracle所有。Java编译器用于读取java程序并编译java程序,并将其转换成机器可读的字节码。java compiler tool
Javac 该工具是作为JDK软件安装的一部分,位置在JDK安装文件夹的bin 。
这个工具是java编程开发人员需要学习的一个基本的、重要的工具。
本文讲述了javac的教程和例子,并为刚接触java的开发者介绍了javac的已知问题。
javac命令的用法
javac 是java中用来编译java程序的一个命令。
下面是一个命令的用法:
javac {options} {sourcejavafile} {commandlinearguments}
有三个参数被传递:
Options :在javac中是由JDK框架提供的标准选项
source java file :是java程序要读取和编译的
command line arguments :是在命令行传递给java程序的参数,在运行时由java程序使用main()方法的参数String[] args读取。
java中的javac命令行选项
以下是使用-help 命令的所有选项javac command
C:\work>javac -help
Usage: javac
Where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath Specify where to find user class files and annotation processors
-cp Specify where to find user class files and annotation processors
-sourcepath Specify where to find input source files
-bootclasspath Override location of bootstrap class files
-extdirs Override location of installed extensions
-endorseddirs Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compilation is done.
-processor [,,...]Names of the annotation processors to run; bypasses default discovery process
-processorpath Specify where to find annotation processors
-d Specify where to place generated class files
-s Specify where to place generated source files
-implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files
-encoding Specify character encoding used by source files
-source Provide source compatibility with specified release
-target Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-Akey[=value] Options to pass to annotation processors
-X Print a synopsis of nonstandard options
-J Pass directly to the runtime system
使用javac编译java文件
First.java被java编译器读取并编译成First.Class,并将此文件放在当前目录中。
对于java程序员来说,经常有一些重要的选项。
如何在java中用javac设置Classpath?
通常情况下,javac ,如果编译的java类有任何依赖性,就会配置classpath 选项。
classpath 是环境设置的配置值,当java程序运行时,它被java运行系统用来寻找类和其他与java相关的对象。CLASSPATH在机器层面和内联classpath设置中进行配置。在机器层面,我们可以使用环境变量CLASSPATH进行配置,而内联的classpath设置是通过向javac等JDK工具提供 -cp或-classpath 选项来配置的。
我们可以在javac中设置类和jar文件的classpath。在windows下配置javac classpath和在Linux环境下配置javac classpath是一样的。
javac classpath例子
C:\javac -classpath .;d:/project or
C:\javac -cp .;d:/project
我们也可以使用下面的命令在命令提示符下设置classpath。在上面的例子中,javac编译的目录是当前目录。
C:\set CLASSPATH=.;pathtodirectoryforclasses or jars;
classpath值应该是当前目录(代表.)或任何其他指向.class文件、jar和zip文件的目录。
classpath默认设置为当前目录。如果我们使用javac -classpath命令行选项设置CLASSPATH,则覆盖默认目录。
javac sourcepath选项
每当Java程序被编译时,javac会从javac执行的当前目录中寻找java文件的源。
如果javac想搜索当前目录以外的java源文件,我们必须向javac提供source path选项。
C:\javac -sourcepath c:\javawork\javafiles;.; MyFirstProgram.java
javac源码选项
javac也可以使用-source 选项来编译支持较低版本的JDK版本的java程序。
有了这个选项,我们可以随时配置所需的java源代码的兼容性,以满足所需的java版本。这个选项可以灵活地将较低版本的Java版本只用于java源代码。
C:\javac -source 1.4 MyFirstProgram.java
javac目标选项。
通过在javac 中使用target 选项,编译后的类可以与JDK的版本兼容。一旦用这个选项生成了.class ,这些文件就只能与特定的JVM相媲美。
Javac对于基本的java程序员来说是已知的问题
对于第一次使用的用户,当我们编译一个java程序时,我们会遇到很多问题。
我列出了我在学习java时遇到的两个重要问题。
修复Javac'不被识别为内部或外部命令、可操作程序或java中的批处理文件问题:-
javac是JDK软件中可用的工具,一旦JDK安装完毕,例如(d:\\jdk1.12),javac.exe就可以在d:\\jdk1.12\\bin 。
假设你在不同的目录下运行javac 命令,例如d:\\code 。javac First.java 命令在 java 中给出了一个错误 "Javac' 没有被识别为内部或外部命令、可操作程序或批处理文件"。
javac 这个错误应该在编译java文件的目录中出现。
我们可以通过使用inline path settings 或environment variable settings ,以多种方式解决这个问题。
javac -classpath设置
在windows中为java配置环境变量路径:-
当java被安装后,windows并不知道javac的位置,我们必须设置环境变量path ,指向java的bin 文件夹。
- 转到
My Computer。 - 并在其上点击右键
- 并选择属性,转到高级标签。
- 添加Path环境变量,该变量指向java的位置。
d:\\jdk1.6\\bin
path=%path%;.;d:\\jdk1.6\\bin;
一旦这些设置被配置好,我们就可以在windows系统中从任何地方进行编译了。
修复java中的javac: file not found: 问题
javac: file not found是一个在Java学习中经常遇到的错误。
C:\Work>javac MyFirstProgram.java
javac: file not found: first.java
Usage: javac
use -help for a list of possible options
当我们用javac命令编译一个java文件时,系统控制台中会出现上述错误。
javac工作正常,javac设置没有问题。
可能的解决办法是,在当前目录下没有java文件。
解决方法是使用dir command in windows 或ls command with Linux 找到目录中的java文件。
如果java文件不在那里,把java的完整路径作为输入给javac编译器。
希望它能正常工作,编译顺利。
总结
总而言之,你学到了java语言中的重要工具,java编译器的选项和可能的错误。