Java包不存在错误

所以根目录下有一个/usr/share/stuff文件夹

在东西中有一堆java文件,顶部有package org.name定义package org.name

我正在运行javac test.java ,其中test.java位于子域中

我将/usr/share/stuff到我的类路径中。

test.java的顶部我添加了import org.name

但我得到一个package does not exist错误…为什么?

它们是否在正确的子目录中?

如果将/usr/share/stuff放在类路径上,则使用package org.name定义的文件应位于/usr/share/stuff/org/name

编辑 :如果您还不知道这一点,您应该阅读: http : //download.oracle.com/javase/1.5.0/docs/tooldocs/windows/classpath.html#Understanding

编辑2 :对不起,我没有意识到你在谈论/usr/share/stuff的Java源文件。 它们不仅需要位于适当的子目录中,而且还需要编译它们。 .java文件不需要在类路径上,而是在源路径上。 (生成的.class文件需要在类路径上。)

如果它们不在正确的目录结构下,你可能会编译它们,但它们应该是,或者它至少会产生警告。 生成的类文件将位于正确的子目录中(如果有,则指定-d )。

你应该使用类似javac -sourcepath .:/usr/share/stuff test.java ,假设你把/usr/share/stuff下的.java文件放在/usr/share/stuff/org/name (或根据其包装名称适当的任何东西)。

您需要在/usr/share/stuff拥有org/name dirs,并将org.name包源放在此目录中。

我遇到了这个问题,在我的应用程序中尝试使用打包为.jar的主题时,它在调试应用程序时正在工作,但在构建/导出应用程序时却没有。

我通过解压缩jar来解决它,并手动将其内容添加到我的构建文件夹中,从而产生以下结果:

 project/ │ ├── build │ └── classes │ ├── pt │ │ └── myAppName ... │ └── com │ └── themeName ... ├── src └── lib 

我没有错误,我的应用加载了预期的主题。

我通过命令行手动编译时遇到了完全相同的问题,我的解决方案是我没有包含-sourcepath目录,因此所有子目录java文件也将被编译!

右键单击下拉列表Maven >> reimport底部的maven项目

它适用于缺少的依赖性