Java命令行总结

参考:javac命令   java命令

Javac命令:

  用于把源文件编译成二进制的字节码文件。即把*.java文件编译成*.class,*.java与*.class名字是一对一对应,即Test.java编译后的文件是Test.class。另外,内部类编译后的名字为OutClassName$InClassName.class。

  语法:javac [options] [sourcefiles] [@argfiles]

  • options:命令行参数。
  • sourcefiles:一个或多个需要编译的源文件,源文件以空格隔开,并路径相对于当前工作目录。文件少的时候使用这种方式。这里可以使用通配符,如:com\sin90\*.java
  • @argfiles:一个或多个包含命令行参数或源文件地址的文件,源文件地址也是相对于当前工作目录,源文件地址以空格或换行符隔开。如:Test.java com.sin90.New.java。文件多的时候使用这种方式。

Note :编译器在编译源文件的时候,可能需要引用其他的类或接口来完成编译。编译器搜索这些类或接口路径按以下顺序:boostrap-->extention classes-->user classpath(默认是类或接口文件所在目录)。

 

user classpath可以通过下面两种方式设定:

  1. 设置系统环境变量CLASSPATH:.;C:\java\jdk\lib\tools;any other paths;其中.;指的是类文件所在目录。
  2. 通过在命令行中设置-classpath或-cp参数,详细请看下面。

Note:编译器在搜索路径中搜索到的是*.java文件而非*.class文件,会自动地编译*.java再使用编译后的*.class,如果探索路径上有相同名字的*.java和*.class,会使用最新的那个文件。

 

标准的参数(Standard Options)

  • -classpath classpath :设置一个或多个编译器搜索引用类的目录(也可以是*.jar 的类包),即类中package树型结构基于classpath 的路径,classpath以";"分隔。目录必须是存在的。
  • -d directory :设置编译后生成的*.class文件放置的目录,该目录必须是存在的。编译器会根据class文件的package树型结构来放置文件。
  • -deprecation:显示源文件中应用了已过时的成员(类、方法ect.)的信息。如果没有设置该参数,编译器只会显示使用了过时成员的源文件名字。-deprecation是-Xlint:deprecation的简短形式。
  • -encoding encoding :设置源文件的字符编码。如UTF-8
  • -g:开启调试信息显示。如果没有设置,默认显示源文件名称和代码所在行。
  • -g:none :不显示任何调试信息。
  • -help:显示javac命令的标准参数及其描述。
  • -nowarn:不显示警告信息。该参数是Xlint:none的简短形式。
  • -source release :设置使用哪个版本的JDK进行编译。值可以是:1.3、1.4、1.5、1.6?一般不用设置该参数。
  • -sourcepath sourcepath :设置需要编译的源文件所在的目录、jar或zip等,即源文件的package的根。感觉这个参数跟classpath没什么区别。
  • -verbose:输出详细的编译信息。
  • -X:显示不标准的参数信息

非标准的参数(non-standard options)

略。详细请看官方javac的介绍

 

命令行参数文件(Command Line Argument Files)

命令行参数文件是为了在编译多个文件的时候,简化命令行。

 

一个命令行参数文件(简称:参数文件)可以包括参数(options)和源文件路径,这些参数或源文件路径在参数文件内以空格或换行符隔开。源文件路径是相对于当前工作目录,而不是相对参数文件所在的目录。

 

Artifice :参数文件可以看作是把命令行分别写在几个文件上一样,虽然会有些区别,如下面Note所示。

Note :在参数文件中不支持通配符*,和递归参数文件(即在参数文件中再次@参数文件),也不支持-J参数。

 

示例:

在C盘有一个文件options,内容如下:

-d classes
-g
-sourcepath \java\pubs\ws\1.3\src\share\classes

在C盘source文件夹内有一个classes文件,内容如下:

MyClass1.java
MyClass2.java
MyClass3.java

 在doc命令窗口下输入:

C:\>javac @options @source\classes

 那么该命令便会编译C盘下的MyClass1.java,MyClass2.java,MyClass3.java

 

java/javaw命令:

语法:

java [options] class [argument ...]

java [options] -jar file.jar [argument ...]

javaw [options] class [argument ...]

javaw [options] -jar file.jar [argument ...]

  • options:命令行参数。
  • class:需要运行的*.class文件,该文件要带main方法
  • file.jar:需要运行的jar文件,只有带-jar参数时有效。jar文件的根要带有启动类MainClass类文件。
  • argument:传递给启动类的一系列参数。

Artifice :运行时搜索类的顺序与编译时一致,同样是 boostrap-->extention classes-->user classpath

Note :java与javaw的区别是javaw没有相关联的控制台窗口,当运行javaw出错时,会弹出对话框。

 

标准参数(standard options)

略;参考官方java命令文档

 

非标准参数(non-standard options)

略;参考官方java命令文档

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值