java:无法解析符号

时间:2009-10-13 21:48:56

标签: java

我正在编译JAVA(1.4 varsion)文件并收到以下错误 (大约100次都是一样的。)

Appli.java:721: cannot resolve symbol
symbol  : class License
location: class test.App.Appli
            License  sellLicense = sell.getLicense();

我用过

   run/cmd/cd D:...../javac Appli.java

我已将CLASSPATH变量设置为我当前运行的java文件的Classes文件夹。

  Control panel/Settings/System/System Properties /Advanced/Environmental Variables/System Variables/ Add/CLASSPATH 

我应该使用

如何解决问题?

3 个答案:

答案 0 :(得分:2)

在我看来,您需要使用Appli类编译类许可证。有关详细信息,请查看Javac Documentation,但您可以执行以下操作:

javac Appli.java License.java

如果许可证位于库中,则需要将库添加到编译类路径中。这是通过-classpath标志完成的:

javac -classpath "classpath" Appli.java

答案 1 :(得分:1)

您需要设置CLASSPATH并确保您位于正确的目录中。

假设test.App.Appl试图引用test.App.License,目录结构应为:

/somedir/test
/somedir/test/App
/somedir/test/App/Appl.java
/somedir/test/App/License.java

您应该将$CLASSPATH设置为"/somedir",然后将当前目录更改为/somedir并将编译器运行为javac test/App/*.java; e.g。

$ export CLASSPATH="/somedir"
$ cd /somedir
$ javac test/App/*.java

您还可以将-cp命令行选项与javac(以及后来的java)命令一起使用,并从另一个目录运行javac编译器使用-sourcepath选项。

另一种可能性是License的包不是test.App。如果是这种情况,则需要调整目录结构以匹配包命名,并向import类添加Appl语句。

编辑:如果您在源树中发现build.xmlpom.xml(或甚至可能是Makefile),则可能不应直接使用javacbuild.xml用于使用Ant构建,'pom.xml is for Maven (or Ivy) and a Makefile or makefile is for make`。

答案 2 :(得分:1)

您可能错过了import声明。