包不存在错误

时间:2011-07-27 02:35:34

标签: java import package

我刚回来修复了我编写的一个小程序中的一些错误,现在我无法编译,因为包不存在(根据javac)。

据我所知,我的类路径或目录内容没有改变。我不知道之间是否有任何Java更新。

在我的根目录中,我有四个组成我程序的Java文件。他们没有归属于他们的任何包裹。另外,我在根目录中有目录结构org\apache\commons\cli,其中包含来自Apache Commons的CLI java文件。 Apache文件确实有一个包,它反映了它们所在的目录结构。

如果我发出命令javac -verbose -d build CommandLine.java,则失败并显示

CommandLine.java:28: package org.apache.commons.cli does not exist
import org.apache.commons.cli.*;
^

CommandLine.java是该计划的切入点。

编译器没有尝试编译CLI文件,如果我事先编译它们,则仍然会发生故障。此外,CLI也可以在我的类路径中使用。

我正在运行javac 1.6.0_12。

我能做什么/尝试?

编辑答案:

如下所述,我将编译命令更改为:

javac -verbose -d build -classpath . CommandLine.java

现在它有效。不知道为什么以前做过,为什么它现在停止了......

因问题原因而被编辑

我安装了一个程序,它也使用CLASSPATH来运行自己的东西。它改变了属于用户的CLASSPATH,但仅留下了全局的CLASSPATH。我重新添加了java类路径的东西,它再次起作用了!

2 个答案:

答案 0 :(得分:2)

除非这是一个错字,否则请注意您说com\apache\commons\cli但导入需要org.apache.commons.cli - org vs com

答案 1 :(得分:1)

您是否解压缩了Apache JAR并将.class文件添加到您的应用程序中?你为什么不把JAR添加到你的CLASSPATH

您不应该依赖CLASSPATH环境变量。最好在编译时使用-classpath javac.exe选项,在运行时使用java.exe