为了节省回答者的时间我先把问题提出来,再针对问题案例作详细说明。如果能不用看问题案例就回答出来当然省时。我的问题是java里面,用命令行提示符环境编译源文件的时候,加上*通配符, 如javac -d .Test*.java的形式,这种情况下编译器将选择怎样的顺序编译文件名里含有Test字段的多个源文件?是不是从Test开始?我已经试验过了,结果是不一定。希望回答者针对自己的答案给我拿出来让我信服的证据,有理想答案的话我会追加可观的积分,希望各路英雄小驻帮忙,谢了。 案例源文件如下: 程序清单1Test.java package org.it315; import org.it315.example.*; public class Test { public static void main(String [] args) { new TestPackage().print(); } } 程序清单2TestPackage.java package org.it315.example; public class TestPackage { public void print() { System.out.println("the program is demostrating how to using package!"); } } 程序源文件来自于张孝祥的java就业培训教程。不过原书源码的类名是反过来的,我为了求证问题把类名掉换了。问题如下:以上是2个源文件,用javac -d . Test*.java命令编译。书中介绍在命令中加上*可以一次编译多个文件,其实不过是通过*通配符实现的编译文件名中带“Test”的所有源文件。可是大家一看就知道上面的2段源码其实是一个整体,Test有调用TestPackage一个方法。我在命令行提示符环境下编译过了,只有通过“javac -d . Test*.java”加通配符方式或者先编译TestPackage再编译Test才能成功,因为很明显在TestPackage所在包还没有编译形成的时候Test是找不到它的内部方法的。我的问题是编译器怎么会知道Test有调用TestPackage的东西而先编译后者?还是说它先编译过了Test发现不好使就转去编译TestPackage了?其中遵循的是怎样一个规则?
您还可以输入9999 个字 |
您提交的参考资料超过50字,请删除
2006-11-17 13:03
满意回答