Javac “cannot find symbol”

穿精又带淫゛_ 提交于 2019-11-27 15:28:41

First, To compile the java source file using javac you need to specify the files to compile explicitly.

Example:

javac PathToSourceFile/FileName.java

you need not provide the path if source file is in current working directory.

Second, whenever java encounters import abc.xyz.ClassName; it tries to resolve abc/xyz/ClassName with respect to the classpath or current working directory.

So if you are inside vehicles folder and compile your code, it wont compile because it will look for folder vehicles inside folder vehicles(which doesn't exists!).

but, you can do this when inside vehicle folder

javac -cp ../ BicycleMain.java

and it should compile, because classpath will be set to directory(../) containing vehicles. which will resolve your Bicycle class.

and then use

java -cp ../ vehicles/BicycleMain to run.

Try deleting the line import vehicles.*; from BicycleMain.java and them compiling with javac in command line.

By the way it happens because while you are compiling in javac you are in the folder vehicles and you write a statement import vehicles.*; in BicycleMain.java which means to the compiler there is another folder vehicles within the vehicles folder which is not the case here

I have solved this problem, compiling from "src".

Something like this: javac ./my_folder/my_file.java

Kind Regards

Just remove the package line from beginning and it'll work 100%.

Go to the folder in which files are stored via terminal and type javac *.java

There will be no need to import classes too.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!