是否只在源代码树的根目录中使用javac?这是什么意思?
我有一位教授,他总是坚持 “调用是否只在源代码树的根目录中使用javac?这是什么意思?,java,Java,我有一位教授,他总是坚持 “调用javac时位于源代码树的根目录中(调用java时位于目录的根目录中)。” 虽然,对于我所做的基本程序,我从未发现有必要这样做 那么,需要做什么呢?这意味着如果您有一个包,foo,并且该包中有一个或多个类: package foo; class Nifty { // ... } …并且您的源代码树看起来像(而且它必须): +来源 +福 +Nifty.java 编译时,javac将期望位于source目录中,而不是foo目录中。这就是javac的特点 ja
javac
时位于源代码树的根目录中(调用java
时位于目录的根目录中)。”
虽然,对于我所做的基本程序,我从未发现有必要这样做
那么,需要做什么呢?这意味着如果您有一个包,
foo
,并且该包中有一个或多个类:
package foo;
class Nifty {
// ...
}
…并且您的源代码树看起来像(而且它必须):
+来源
+福
+Nifty.java
编译时,javac
将期望位于source
目录中,而不是foo
目录中。这就是javac
的特点
java
希望类路径将包括source
(而不是foo
),并且类似于javac
的相关工作(在foo
中查找包foo
中的类).无论是javac
还是java
都希望找到根据包结构排列的源文件和类文件。您的意思与Yes类似,完全一样。有很多方法可以解决这些问题,但通常最好按照教授的建议去做。因此正确使用javac的方法应该是javac foo/Nifty.java
,而java的方法应该是javafoo.Nifty
对吗?@Bateman:完全正确(对于*nix系统);在Windows上,它将是javacfoo\Nifty.java
。(尽管如果它同时起作用,我也不会感到惊讶。)
+ source
+ foo
+ Nifty.java