Java错误:包“x”不存在

Java错误:包“x”不存在,java,file,directory,javac,java-package,Java,File,Directory,Javac,Java Package,因此,我在Linux中有一个文件树,如下所示: ~/键盘战士/ 试验/ ConfigTest.java ConfigParser.class ConfigParser.java 问题是,当我尝试键入Terminal时: javac ConfigTest.java 我得到一个错误: ConfigTest.java:2: error: package keyboard_warriors does not exist import keyboard_warriors.*; ^ 这真的很困扰我

因此,我在Linux中有一个文件树,如下所示:

~/键盘战士/ 试验/ ConfigTest.java ConfigParser.class ConfigParser.java 问题是,当我尝试键入Terminal时: javac ConfigTest.java

我得到一个错误:

ConfigTest.java:2: error: package keyboard_warriors does not exist  
import keyboard_warriors.*;  
^

这真的很困扰我,我在任何地方都找不到任何答案。如果你能解决我的问题,我将是一个非常快乐的人。

它不会将类路径之外的目录识别为类路径的一部分

您可能希望在运行测试的文件夹中包含另一个文件夹:

test/
    keyboard_warriors/
        ConfigTest.java
        ConfigParser.java
这还假定您已通过以下方式将这些类声明为位于键盘类路径中:

package keyboard_warriors;

根据编译这些类的方式,您必须在javac上将其添加到带有-cp标志的类路径中。

鉴于您引用的结构,将键盘导入ConfigTest会很奇怪;从结构上,您可以看到包键盘战士;相反,因为ConfigTest位于键盘目录中

如果ConfigTest不在keyboard\u warriors包中,则它可能位于错误的目录中

一般来说:编译类时,.java文件应该位于以其所在包命名的目录中。因此,例如,如果ConfigTest要在包中,您应该保持目录/文件结构不变,并使用

package keyboard_warriors;
…在ConfigTest.java中

如果ConfigTest不在该包中,您可能会将其移出该目录;也许:

~/键盘战士/ 试验/ ConfigTest.java ConfigParser.class ConfigParser.java
…然后导入键盘_.*;如果你的主目录在你的类路径中,这是有意义的。

我很久以前就知道答案了,但是忘记发布了。对不起的:。其实很简单。我试图从test/文件夹中编译这些类。我所做的是进入所有类都可以访问的位置,而不必使用绝对路径,也不必在路径中使用../即键盘\文件夹。我只是从那里编译,一切都很好。不过,感谢您的投入,它确实帮助了一些人

那不是一个包,那是你的根目录。。。我建议使用IDE。嘿,伙计们,我找到了答案。在~目录中,我执行了javac-cp。keyboard\u/test/ConfigTest.java也许,但从引用的结构来看,仅仅调整类路径不太可能是解决方案。