所以我在Linux中有一个文件树,如下所示:
问题是当我尝试输入终端时:
javac ConfigTest.java
我收到错误:
ConfigTest.java:2: error: package keyboard_warriors does not exist
import keyboard_warriors.*;
^
这真让我烦恼,我无处可寻。如果你能解决我的问题,我会是一个非常幸福的人。
答案 0 :(得分:0)
它不会将类路径之外的目录识别为类路径的一部分。
您可能想要的是在运行测试的位置包含另一个文件夹:
test/
keyboard_warriors/
ConfigTest.java
ConfigParser.java
这也假设您已将这些类声明为keyboard_warriors
类路径,由此:
package keyboard_warriors;
根据您编辑这些课程的方式,您必须将-cp
上的javac
标记添加到类路径中。
答案 1 :(得分:0)
鉴于您引用的结构,将keyboard_warriors
导入ConfigTest
会很奇怪;从结构来看,您希望看到package keyboard_warriors;
,因为ConfigTest
位于keyboard_warriors
目录中。
如果ConfigTest
包中的keyboard_warriors
不是,则可能是错误的目录。
一般情况下:当您编译类时,.java
文件应该位于为其所在的包命名的目录中。例如,如果ConfigTest
包含在包中,你保持你的目录/文件结构,并使用
package keyboard_warriors;
...在ConfigTest.java
。
如果ConfigTest
不在中,那么您可能会将其移出该目录;也许:
...然后import keyboard_warriors.*;
会有意义,只要你的主目录在你的类路径中。
答案 2 :(得分:0)
我很久以前就找到了答案,但忘记发布了。对不起:)。它实际上非常简单。我试图从test/
文件夹中编译类。我所做的是去所有类都可以访问的地方而不必使用绝对路径并且不在路径中使用../
(AKA keyboard_warriors/
文件夹。我只是从那里编译,一切都是A -OK。感谢您的投入,它确实帮助了一些;)。