用法:javac <选项> <源文件>
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件的位置
-cp <路径> 指定查找用户类文件的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖安装的扩展目录的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-d <目录> 指定存放生成的类文件的位置
使用-d参数,如类中定义了包,则编译时会自动生成包, 如:javac -d . helloworld.java
表示在当前目录下编译Helloworld 类。.表示当前目录,如helloword中定义有包,则在当前目录下生成包:
-encoding <编码> 指定源文件使用的字符编码
-source <版本> 提供与指定版本的源兼容性
-target <版本> 生成特定 VM 版本的类文件
-version 版本信息
-help 输出标准选项的提要
-X 输出非标准选项的提要
-J<标志> 直接将 <标志> 传递给运行时系统
java
用法: java [-选项] 类 [参数...]
(执行一个类)
或者 java [-选项] -jar jar文件 [参数...]
(执行一个jar文件)
其中,可能的选项包括:
-client 选择 "client" VM(ginger547:应该是指Virtual Machine)
-server 选择 "server" VM
-hotspot 与 "client" VM同义 [不赞成]
默认情况的VM是client.
-cp <一个文件夹和zip/jar文件组成的类搜索路径>
-classpath <一个文件夹和zip/jar文件组成的类搜索路径>
一个由文件夹,JAR压缩文件,或者ZIP压缩文件组成的用来搜索类的列表
-D<名字>=<值>
设置一个系统属性
-verbose[:class|gc|jni]
使详细输出变的可用
-version 打印产品版本然后退出
-version:<值>
只运行指定版本
-showversion 打印产品版本后继续
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的时候,包含/排除用户私人的JRE
-? -help 打印帮助信息
-X 打印非标准选项帮助
-ea[:<包名>...|:<类名>]
-enableassertions[:<包名>...|:<类名>]
使断言可用
-da[:<包名>...|:<类名>]
-disableassertions[:<包名>...|:<类名>]
是断言不可用
-esa | -enablesystemassertions
使系统级断言可用
-dsa | -disablesystemassertions
使系统级断言不可用
-agentlib:<库名>[=<选项>]
加载本地代理库<库名>,例如. -agentlib:hprof
同时可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路径名>[=<选项>]
通过全路径名来加载本地代理库
-javaagent:<jar路径>[=<选项>]
加载Java编程语言代理,可查看 java.lang.instrument
在命令行下编译一般写个批处理来进行编译,执行
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hittata/archive/2009/04/11/4065071.aspx
个人补充:
1. import 时不能只是 import package; 而应该是 import package.*; 或者 import package.类名;
2. 多数情况下,method 应该为 public ,否则包外无法访问。
3. -classpath 指定路径时,多个路径用分号(;)分割(Windows),unix下用冒号(:)分割。
4. classpath 只用来指定 .class 文件的路径,而不是其他文件的路径。
5. 当类名属于某个包时,包名将成为类名的一部分。所以,在保外使用某个class 文件时,当没有使用 import ... 时,需要用类全名(包括包名在内)。
6. -classpath 可以指定 .jar 文件的路径。在用 jar 打包 .class 文件时,必须将 .class 文件所在的包也打包进去,比如:
package testpack;
public class Test { }
打包 Test.class 文件时,必须在 testpack 所在的目录运行 jar cvf Test.jar testpack/ 命令。
7. 命令行中的 -classpath 选项会覆盖默认的系统 class 路径,而不是扩展。如果要包括默认的系统路径,通常引用系统变量 CLASSPATH 。例如:
javac -classpath %CLASSPATH%;dir1;dir2 ...
Unix下为:javac -classpath $CLASSPATH:dir1:dir2 ...
8. javac 中,classpath 默认会包含当前目录(并首先搜索当前目录);而在 java 命令中,classpath 默认不包含当前目录。
java编译和运行:
D:\java\xiaoxiao下面有个Hello.java文件如下:
package xiaoxiao;
public class Hello{
public static void main(String args[]){
System.out.println("Hello world!");
}
}
编译与运行方式:
1.已经配置了系统的path(编译命令bin)和classpath(运行时的索要的类lib)
D:\java>javac xiaoxiao\Hello.java或者D:\java\xiaoxiao>javac Hello.java
D:\java>java xiaoxiao.Hello
在编译的时候还有俩个重要的参数-classpath:引用第三方jar包时用的参数
和-d:把编译后的class文件放在制定的目录下面
编译的时候可以在任何地方只要指定对应的java文件的位置而运行的时候要在包的外面并且将包带上
在运行的时候有个classpath参数:制定运行类的位置如下:
D:\java\xiaoxiao>javac -d d: Hello.java
D:\java\xiaoxiao>java -classpath d:\ xiaoxiao.Hello
2.一次性的:进入jdk所在的bin目录下面:
C:\Program Files\Java\jdk1.5.0_09\bin>javac D:\java\xiaoxiao\Hello.java
C:\Program Files\Java\jdk1.5.0_09\bin>java -classpath D:\java xiaoxiao.Hello
3.使用set命令仅对本窗口有效
D:\>set path=C:\Program Files\Java\jdk1.5.0_09\bin;%path%
D:\>javac xiaoxiao\Hello.java
D:\>set classpath=D:\java;%classpath%
D:\>java xiaoxiao.Hello
使用批命令编译和运行java文件
编译:在java目录下创建build.bat文件内容如下:
set dir=d:\
javac -d %dir% %1.java
其中%1表示第一个参数值,计算参数值时是从0开始的(build xiaoxiao\Hello其中的空白是第一个参数,xiaoxiao\Hello是第二个参数)
D:\java>build xiaoxiao\Hello会出现:
D:\java>set dir=d:\
D:\java>javac -d d:\ xiaoxiao\Hello.java
运行:在java目录下面建立 run.bat文件内容如下:
set dir=D:\
set bag=xiaoxiao
java -classpath %dir% %bag%.%1
D:\java>run Hello出现:
D:\java>set dir=D:\
D:\java>set bag=xiaoxiao
D:\java>java -classpath D:\ xiaoxiao.Hello
许多操作系统使用环境变量传递配置信息到应用程序,就像java平台的属性一样,也是键值对存在的。
例如Path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到Path中指定的路径中去找。用户通过设置环境变量,来更好的运行进程。
在命令行中对环境变量进行编辑的方法
查看当前可用的所有环境变量(=系统变量+用户变量)
set
查看某个环境变量,如PATH
set PATH
添加环境变量,如xxx=aa
set xxx=aa
将环境变量(如xxx)的值置为空
set xxx=
在某个环境变量(如PATH)后添加新的值(如d:\xxx)
set PATH=%PATH%;d:\xxx
(注:在dos窗口中以命令行方式对环境变量的操作只对当前窗口的应用有效)
java环境变量配置:
JAVA_HOME: E:\java6 此目录为java 安装目录
PATH: E:\java6\bin 此目录为java要执行目录,例如执行javac,java命令需要在此目录下执行
CLASSPATH: E:\java6\jre\lib 此目录为java运行是环境需要的类库目