javc编译器教程与实例| Javc命令

298 阅读5分钟

在这篇博文中,我们将通过教程和使用实例来学习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:\\codejavac First.java 命令在 java 中给出了一个错误 "Javac' 没有被识别为内部或外部命令、可操作程序或批处理文件"。

javac 这个错误应该在编译java文件的目录中出现。

我们可以通过使用inline path settingsenvironment 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 windowsls command with Linux 找到目录中的java文件。

如果java文件不在那里,把java的完整路径作为输入给javac编译器。

希望它能正常工作,编译顺利。

总结

总而言之,你学到了java语言中的重要工具,java编译器的选项和可能的错误。