编译:javac <源文件>,编译成.class文件
执行:java .class文件
一、 配置环境变量
1. 配置JAVA_HOME
根据jdk的安装位置,配置该参数,例如:
D:/Program Files/Java/jdk1.6.0_17
|
2. 配置CLASSPATH
CLASSPATH的作用是告诉java(或者javac)命令当前的编译过程中所需要的类的存放位置,配置这个变量后执行java命令的时候就不用再次指定jar包所在位置,我的机器上的配置如下:
%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
|
3. 配置path
在cmd模式中,我们执行java命令和javac命令,如果都可以执行则不需要再次配置了,说明以前已经配置成功了。如果java命令执行不成功,则path中增加一项(在以前path的值后边新增加一项),如下:
D:/Program Files/Java/jdk1.6.0_17
|
再新增一项,如下:
D:/Program Files/Java/jdk1.6.0_17/bin
|
正确的执行如下:
C:/Users/Administrator>java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
C:/Users/Administrator>javac
用法:javac <选项> <源文件>
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
|
二、 编写java源码并编译
1. 编写Say.java源码
新建一个Say的java文件,代码如下:
public class Say {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("我说出一句话了。");
}
}
|
2. 编译Say.java源码
执行javac命令编译源代码,下面得蓝色部分说明javac执行成功了,并在当前目录下生成了Say.class文件,如下:
Microsoft Windows [版本 6.1.7600] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 C:/Users/Administrator>d: D:/>cd temp D:/temp>javac Say.java |
3. 执行编译后的Say.class文件
调用java命令执行Say.class文件,发现有错误,错误信息如下:
D:/temp>java Say
Exception in thread "main" java.lang.NoClassDefFoundError: Say (wrong name: com/csdn/test/Say)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Say. Program will exit.
|
4. 正确执行Say.class的方法
为什么上边的“java Say”命令会报错误的名字“com/csdn/test/Say”呢?我们回忆下我们把一个com.csdn.test.Say的类部署到应用的classes目录下是如何部署的。每个包都需要放到一个文件夹下,java的命令行也是。我们在当前目录下依次建立com/csdn/test目录,把编译后的Say.class拷贝到test目录后,我们再执行下,执行过程如下:
D:/temp>java com.csdn.test.Say 我说出一句话了。 D:/temp> |
如上面的红色部分,成功执行了Say.class中的main方法。
一、 配置环境变量
1. 配置JAVA_HOME
根据jdk的安装位置,配置该参数,例如:
D:/Program Files/Java/jdk1.6.0_17
|
2. 配置CLASSPATH
CLASSPATH的作用是告诉java(或者javac)命令当前的编译过程中所需要的类的存放位置,配置这个变量后执行java命令的时候就不用再次指定jar包所在位置,我的机器上的配置如下:
%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
|
3. 配置path
在cmd模式中,我们执行java命令和javac命令,如果都可以执行则不需要再次配置了,说明以前已经配置成功了。如果java命令执行不成功,则path中增加一项(在以前path的值后边新增加一项),如下:
D:/Program Files/Java/jdk1.6.0_17
|
再新增一项,如下:
D:/Program Files/Java/jdk1.6.0_17/bin
|
正确的执行如下:
C:/Users/Administrator>java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
C:/Users/Administrator>javac
用法:javac <选项> <源文件>
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
|
二、 编写java源码并编译
1. 编写Say.java源码
新建一个Say的java文件,代码如下:
public class Say {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("我说出一句话了。");
}
}
|
2. 编译Say.java源码
执行javac命令编译源代码,下面得蓝色部分说明javac执行成功了,并在当前目录下生成了Say.class文件,如下:
Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:/Users/Administrator>d:
D:/>cd temp
D:/temp>javac Say.java
|
3. 执行编译后的Say.class文件
调用java命令执行Say.class文件,发现有错误,错误信息如下:
D:/temp>java Say
Exception in thread "main" java.lang.NoClassDefFoundError: Say (wrong name: com/csdn/test/Say)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Say. Program will exit.
|
4. 正确执行Say.class的方法
为什么上边的“java Say”命令会报错误的名字“com/csdn/test/Say”呢?我们回忆下我们把一个com.csdn.test.Say的类部署到应用的classes目录下是如何部署的。每个包都需要放到一个文件夹下,java的命令行也是。我们在当前目录下依次建立com/csdn/test目录,把编译后的Say.class拷贝到test目录后,我们再执行下,执行过程如下:
D:/temp>java com.csdn.test.Say 我说出一句话了。 D:/temp> |
如上面的红色部分,成功执行了Say.class中的main方法。