所以在根目录下有一个文件夹 /usr/share/stuff
在东西中有一堆 java 文件,顶部有 package org.name
定义
我正在运行 javac test.java
其中 test.java
在子域中
我将 /usr/share/stuff
添加到我的类路径中。
在 test.java
的顶部,我添加 import org.name
但是我得到一个 package does not exist
错误…为什么?
原文由 algorithmicCoder 发布,翻译遵循 CC BY-SA 4.0 许可协议
它们在正确的子目录中吗?
如果将
/usr/share/stuff
放在类路径上,则用package org.name
定义的文件应该在/usr/share/stuff/org/name
中。编辑:如果你还不知道这一点,你应该阅读 这篇关于理解类路径的文档。
编辑 2 :抱歉,我没有意识到您在
/usr/share/stuff
中谈论 Java 源文件。不仅它们需要位于适当的子目录中,而且您还需要编译它们。.java
文件不需要在 类路径 中,而是在 源路径 中。 (生成的.class
文件需要在 类路径 中。)如果它们不在正确的目录结构下,您可能会逃避编译它们,但它们应该在正确的目录结构下,否则它至少会生成警告。生成的类文件将位于正确的子目录中(无论您在何处指定
-d
如果有的话)。You should use something like
javac -sourcepath .:/usr/share/stuff test.java
, assuming you’ve put the.java
files that were under/usr/share/stuff
under/usr/share/stuff/org/name
(or whatever is appropriate根据他们的包名)。