我们假设在下面目录中有一个java源码文件(Exercise.java),也就是一个编译单元
E:\eclipse\adt23\adt-bundle-windows-x86_64-20140702\workspace\JavaTest\src\com\sailang\access
编译Exercise.java源文件
我们一般采用javac Exercise.java命令的方式,解释一下这个命令
javac是编译命令,要想使用这个命令,首先得找到这个命令所在的地方。我们在安装jdk的时候,在path中配置的%JAVA_HOME%\bin目录,就是用来找javac命令的。
Exercise.java就是要编译的源文件,这个文件没有带任何目录结构,说明是在当前目录中找Exercise.java,当前目录是C:\Users\zhongyili,可是在当前目录中没有Exercise.java 文件,所以就报错了。
我们可以通过下面的方式编译
这样就会在access文件夹下产生Exercise.class 文件
那么,现在该执行Exercise了。
这样可以吗?当然不可以了。
下面这样可以:
如果,我们要想java Exercise能执行,只要在CLASSPATH添加E:\eclipse\adt23\adt-bundle-windows-x86_64-20140702\workspace\JavaTest\src\com\sailang\access目录,java会自动进行搜索的。
如下:
.;%JAVA_HOME%\lib;%ANT_HOME%\lib;E:\eclipse\adt23\adt-bundle-windows-x86_64-20140702\workspace\JavaTest\src\com\sailang\access
不过,有个问题,好像Classpath中.;%JAVA_HOME%\lib;%ANT_HOME%\lib;是不用配置的,java也能正常使用。不知道是不是我jdk(jdk1.7.0_17)版本的原因。
注意:
我们上面所有的描述,Exercise的实现是这样的
public class Exercise { public static void main(String[] args) { System.out.println("Exercise"); } }假如,我们把代码修改如下:
import net.mindview.simple.*; public class Exercise { public static void main(String[] args) { Vector v = new Vector(); System.out.println("Exercise"); } }编译:
在编译Exercise.java的时候,发现需要import net.mindview.simple包,但是,编译器不知道去哪儿导入,所有就报错了。
Vector的位置在D:\java\net\mindview\simple\Vector.java
解决这个问题,可以在Classpath中添加D:\java目录,这个Vector.java也会被编译
如果Exercise.java改为如下:
package com.sailang.access; import net.mindview.simple.*; public class Exercise { public static void main(String[] args) { Vector v = new Vector(); System.out.println("Exercise"); } }会怎么样呢?
正确的执行是下面的:
简单说明一下:
java Exercise 肯定是不行的,因为有包名,所有应该是com.sailang.access.Exercise。这就是第一个错误的原因。
第二个错误,在access下面找com.sailang.access.Exercise 也是不对的,应该在src目录下面找。
根据前面的经验,我们是不是觉得,只要把E:\eclipse\adt23\adt-bundle-windows-x86_64-20140702\workspace\JavaTest\src\加到Classpath中,直接执行java com.sailang.access.Exercise就行了,Yes,是的。
Classpath D:\java;E:\eclipse\adt23\adt-bundle-windows-x86_64-20140702\workspace\JavaTest\src;
参考:
http://www.cnblogs.com/pxue/archive/2011/05/10/2042530.html
http://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html
http://wenku.baidu.com/link?url=rCyW67rsWGFCf-ZY5UthEnUFCSQS8Rj1EU22KtpFM_Y9fm3_OmQCNtEtaOFjw1Q--dUtCMYQSMoqYPIrkacrgsNpZky26w_VFoad7r-1zA3
http://www.360doc.com/content/14/0830/16/8358419_405839443.shtmlhttp://blog.csdn.net/pengpenglin/article/details/1682858
http://blog.csdn.net/xw13106209/article/details/6861855