我正在编译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
我应该使用
如何解决问题?
答案 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.xml
或pom.xml
(或甚至可能是Makefile
),则可能不应直接使用javac
。 build.xml
用于使用Ant
构建,'pom.xml is for Maven (or Ivy) and a
Makefile or
makefile is for
make`。
答案 2 :(得分:1)
您可能错过了import
声明。