您的位置:首页 > 编程语言 > Java开发

关于命令提示符下编译和运行Java文件的小东西

2012-09-15 11:31 267 查看
在E盘下新建一个文件夹a,a下有两个文件夹b和c。目录结构为:

a---
--b
--c
在b目录下建立java文件B.java,其代码如下:

package b;
import c.C;
public class B{
public static void main(String args[]){
Cc = new C();
c.disp();

}
}

在c目录下,新建java文件C.java,其代码如下:

package c;
public class C{
public void disp(){
System.out.println("hello~");
}
}

现在如果我们要在命令提示符下利用javac和java命令进行编译和运行:

首先,进入到a-->b目录下,输入javac B.java,会出现如下错误:



可以看到缺少关于C类的信息,会不会是因为C.java没有编译的原因呢?因为在B类中引用了C类的信息,所以我们先把C.java编译了,进入到a-->c目录,输入javac C.java,得到如下信息:



可见编译通过了,在返回到b目录下,重新输入javac B.java命令,得到:



还是不可以,现在想一下,由于我们是在b目录下进行执行的javac命令,而b目录下是没有关于C类的信息的,我们应该返回到B类的上层目录进行编译才对,所以进入a目录下,重新执行命令,得到:



还是有错误,这是因为javac命令不识别这样的带有包标注的b.B.java参数,我们改变方式:



可见,这回是编译通过了,点号表示当前目录,加上b目录,就可以定位到B.java了,而且可以自动关联到C类,捎带着把C先编译了。

现在运行一下,依然在a目录下,输入java .\b\B 得到:



现在又找不到类了,看来是输入的有问题,无法定位到B类。现在改变输入方式,去掉.\b,因为这个时候需要带着B的包名才可以,记得此时B类已经编译结束了,所有的信息都在B的class文件中了,输入javab.B,得到:



这回成功了!

可见,在javac命令执行的时候,需要到类的父目录去运行,同样,java命令也是必须到类的根目录去运行,这样才能把其他引用到的或者相关的类包含进来,在运行java命令的时候还要注意不要忘记类的包名~

写完收工,饭去~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐